目前在制作国际象棋游戏的过程中,在为“CheckMate”制作代码时,我遇到了if语句未执行的问题,即使满足所有条件。
if (boardCopy[x][y] != null)
{
System.out.print(boardCopy[x][y].getColour() + " == " + turn.charAt(0)+" && "+ boardCopy[x][y].getName().substring(0,2)+" == ki && Checkmate == "+ CheckMate[x][y]);
if (boardCopy[x][y].getColour() == turn.charAt(0) && boardCopy[x][y].getName().substring(0,2) == "ki" && CheckMate[x][y])
{
System.out.println(turn + "'s King is in Check");
check = true;
}
System.out.println(" | Check = "+check);
}
代码的输出(重要部分,因为它处于for循环中,它被重复多次轻微变化
W == W && ki == ki && Checkmate == true | Check = false
满足所有条件但代码未执行。思考? (所有变量类型都是正确的,没有拼写错误,W指的是作品的颜色,ki是作品名称的前两个字母('king'),checkmate是一个布尔数组,包含一个位置被攻击的位置'由一个敌人。)
答案 0 :(得分:0)
请注意,字符串无法使用“==”实际比较,字符串(a)==字符串(b) - >假。你需要做 boardCopy [x] [y] .getColour()。equals(turn.charAt(0))