如果语句在条件为假时执行

时间:2015-04-06 23:16:55

标签: java

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语句仍会执行。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果naturepart2.equals(“rock”)为true,则语句将因||而执行(或)在这些条件之间。也许将它们括在括号中,将它们分组为附加到&&amp ;;以及对getChanceNumber和isWeaponFound的检查。