满足If语句的所有条件,但未执行

时间:2016-05-17 01:13:50

标签: java if-statement multiple-conditions

目前在制作国际象棋游戏的过程中,在为“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是一个布尔数组,包含一个位置被攻击的位置'由一个敌人。)

1 个答案:

答案 0 :(得分:0)

请注意,字符串无法使用“==”实际比较,字符串(a)==字符串(b) - >假。你需要做 boardCopy [x] [y] .getColour()。equals(turn.charAt(0))