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语句仍会执行。
感谢您的帮助。
答案 0 :(得分:0)
如果naturepart2.equals(“rock”)为true,则语句将因||而执行(或)在这些条件之间。也许将它们括在括号中,将它们分组为附加到&&amp ;;以及对getChanceNumber和isWeaponFound的检查。