2012-10-10 66 views
0

這回Java 101的開始,但我有這個代碼在這裏:Java中,布爾值的二維數組&&比較

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語句,無論如何。我在做什麼錯誤的比較?提前致謝。

+3

這段代碼對我來說看起來很好。但請記住,'x - '會改變'x'的值,所以無論x在if塊之前,它在塊內部都會少一個,可能會給你一個誤導性的調試語句。 –

回答

3

您正在使用x--,它將更改x的值。首先,它返回的值,則遞減值:

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

你可能想說的X-1

+0

謝謝,這是漫長的一天... – Nolan

+0

沒問題。歡迎來到堆棧溢出! – Arcymag

+1

@NolanLozinski不要忘記[將此帖標記爲答案](http://meta.stackexchange.com/a/5235/182862) –

2

值將是不同的,當你的代碼執行if條件,然後裏面if條件,你正在控制檯中打印。

您正在遞減if條件中的x的值。 所以,當你在條件內打印時,你會得到遞減值。