0

这又回到了 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]) 是假的,并System.out.println通过打印出假来确认这一点,它仍然会进入 if 语句,无论如何。我在比较中做错了什么?提前致谢。

4

2 回答 2

3

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

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

你可能想说 x-1

于 2012-10-10T04:31:58.473 回答
2

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

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

于 2012-10-10T04:32:17.333 回答