2015-12-02 59 views
-7

我有一個奇怪的問題,與if語句。我正在檢查布爾是否爲真,如果它是if語句必須運行。我System.out.println在許多地方的布爾值,它總是假的,但if語句仍然運行。任何幫助?奇怪的是,如果語句總是運行,即使條件不符合

import java.util.ArrayList; 

public class GameLoop extends Thread { 
private Boolean running; 
private ArrayList<Meteor> meteorArrayList; 
private Boolean win; 
private GameScreen gameScreen; 

public GameLoop(GameScreen gameScreen, ArrayList<Meteor> meteorArrayList) 
{ 
    setMeteorArrayList(meteorArrayList); 
    setGameScreen(gameScreen); 
    setRunning(true); 
    setWin(false); 
} 

@Override 
public void run() 
{ 
    while (running) 
    { 
     if(checkWin()); 
     { 
      System.out.println(checkWin()); 
      gameScreen.winGame(); 
     } 
    } 
} 

public Boolean checkWin() 
{ 
    if(getMeteorArrayList().isEmpty()) 
    { 
     setWin(true); 
    } 
    else 
    { 
     setWin(false); 
    } 
    System.out.println(getWin()); 
    return getWin(); 
} 

public void cancel() 
{ 
    interrupt(); 
} 

//======================GETTER EN SETTERS============================= 


public Boolean getRunning() { 
    return running; 
} 

public void setRunning(Boolean running) { 
    this.running = running; 
} 

public ArrayList<Meteor> getMeteorArrayList() { 
    return meteorArrayList; 
} 

public void setMeteorArrayList(ArrayList<Meteor> meteorArrayList) { 
    this.meteorArrayList = meteorArrayList; 
} 

public Boolean getWin() { 
    return win; 
} 

public void setWin(Boolean win) { 
    this.win = win; 
} 

public GameScreen getGameScreen() { 
    return gameScreen; 
} 

public void setGameScreen(GameScreen gameScreen) { 
    this.gameScreen = gameScreen; 
} 

}

+4

'如果(checkWin());' - 刪除';' – Eran

+0

.....總是一個愚蠢的分號,我的生活故事。 *嘆* thnx指出:) – Zeepblok

+0

你怎麼能說'if'語句運行?它沒有做任何有後果的事情。 –

回答

4

你必須在該行的代碼小語法錯誤。

而不是

if (checkWin()); 

應該

if (checkWin()) 

取出;

相關問題