2015-04-06 69 views
0
if (((section[mapposition][mapdirection].getChanceNumber()==0)&&(section[mapposition][mapdirection].isWeaponFound()==false))&& 
       (naturepart1.equals("rock"))||(naturepart2.equals("rock"))){ 
       // System.out.println(section[mapposition][mapdirection].getChanceNumber()); 
       // System.out.println(section[mapposition][mapdirection].isWeaponFound()); 
       player.addWeapon(section[mapposition][mapdirection].getWeapon()); 
       break; 
} 

我正在製作的程序的一部分有一條if語句。由於某些原因,即使「getChanceNumber()」返回整數2,並且「isWeaponFound()」返回true時,該代碼塊仍會繼續執行。如果語句在條件爲假時執行

我不知道爲什麼這個if語句仍然執行,即使條件爲false。

感謝您的任何幫助。

回答

0

如果naturepart2.equals(「rock」)爲true,則語句將執行,因爲||。 (或)在這些條件之間。也許把它們放在圓括號中,將它們分組爲一個二進制語句,附帶一個& &以及對getChanceNumber和isWeaponFound的檢查。

+0

該死的,我是個白癡。我一直在試圖弄清楚一個小時以後出了什麼問題,我需要做的只是放在括號內。謝謝 – Bernandion