2012-09-16 80 views
2

foreach循环完全忽略我的if语句。for循环忽略布尔如果语句

 for(InfoBox infoBox : mAbilities) 
     { 
      if(infoBox.CheckPressed(event)); 
      { 
       //This is being outputted each time, even if the if statement returns false. 
       System.out.println(infoBox.getName()); 
      } 

      System.out.println(infoBox.CheckPressed(event)); 
      System.out.println(infoBox.getName()); 
     } 
+2

这就是为什么你应该尊重[Java Code Conventions](http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html),并将左括号放在同一行,如/ if等。 – Xaerxess

+0

您有一个“系统.out.println(infoBox.getName());”在{}之外的if {}之外。你确定这不是你看到的印刷品吗?... – TheCodeArtist

回答

11

你提前终止你的if语句都以分号:

if(infoBox.CheckPressed(event)); // <-- remove the semicolon 

这使得下面的块中的独立块,将永远执行。

+0

谢谢,这样的傻瓜。 –

2

我想这是你必须做无意中.....

if(infoBox.CheckPressed(event));

删除semicolon在上面if声明

2

您应该删除,如果分号声明

if(infoBox.CheckPressed(event));