Java,2d布尔值数组&&对照

时间:2012-10-10 04:28:07

标签: java

这是回到Java 101的开头,但我在这里有这个代码:

    if ((d==3)&&(City.walls[x--][y])){
        System.out.println ("Fourth Condition true");
        System.out.println (City.walls[x--][y]);
        return false;
    }

即使City.walls[x--][y])为false,并且System.out.println通过打印出false来确认这一点,它仍然会输入if语句,无论如何。比较中我做错了什么?提前谢谢。

2 个答案:

答案 0 :(得分:3)

您正在使用x--,它会更改x的值。首先它返回值,然后递减值:

int x = 5;
System.out.println(x--); //outputs 5
System.out.println(x);   //outputs 4

你可能想说x-1

答案 1 :(得分:2)

当您的代码在if条件下执行,然后在您在控制台中打印的if条件内时,值将会有所不同。

您在if条件中递减x的值。 因此,当您在条件内打印时,您将获得递减值。