2011-05-05 23 views
1

嘿, 所以Ive得到此方法來確定,如果一個遊戲我寫的結束,由於某種原因,它不工作。我發現了錯誤「分配的左手側必須是一個變量」Java非工作方法?

這裏是方法:

public boolean isWinner() {//checks for game completion 
    int check = board[startX][startY]; 
    for(int i=0; i<sizeX; i++){ 
     for(int j=0; j<sizeY; j++){ 
      if (board[i][j] != check) 
       return false; 
     } 
    } 
    return true; 
    } 

這裏是一塊代碼,其中它被用於:

ColorFloodGame game = new ColorFloodGame (6,6);   
while (game.isWinner() = false){ 
    //code here 
} 
+0

您可以發佈錯誤代碼?這是什麼樣的「非工作」? – 2011-05-05 19:17:17

+3

對於如此短的代碼片段,在這裏直接發佈它們會更好**(確保使用代碼格式化功能)。 – 2011-05-05 19:17:35

回答

3

您需要

更換

while (game.isWinner() = false){ 

while (game.isWinner() == false){ 

或更好:

while (!game.isWinner()){ 
4

你有while (game.isWinner() = false),這是一個任務,因爲你有一個=跡象。

你想while (game.isWinner() == false)這是一個比較,因爲它有兩個=跡象。

1
while (game.isWinner() = false){ 

應該

while (game.isWinner() == false){ 

一個 '=' 是賦值,兩個 '==' 是一個比較

+1

謝謝。我完全錯過了 – Cody 2011-05-05 19:19:27

1

拉爾夫&加布已回答了,但恕我直言,這是更具可讀性:

while (!game.isWinner()){ 
1

while語句中的表達式是一個分配。編譯器無法正確評估表達式。改變你的代碼到下面,一切都應該正常工作。

while (game.isWinner() == false) { 
    //code here 
} 

你也可以這樣寫

while (!game.isWinner()) { 
    //code here 
} 

代碼中使用的風格是每個程序員的不同,你應該找到自己的喜好。

希望它有幫助。