2017-04-25 193 views
-2

我似乎有我的掃描儀/ Eclipse自動運行用戶輸入。我有一臺掃描儀初始化爲:Java掃描儀使用舊輸入

Scanner in = new Scanner(System.in); 

一個菜單:

@Override 
void update() { 
    //welcome 
    System.out.println("-----Welcome to the Pet Game-----"); 
    System.out.println(); 
    System.out.println("1. Play"); 
    System.out.println("2. Help"); 
    System.out.println("3. Dev Mode"); 
    int choice = in.nextInt(); 
    switch(choice){ 
    case 1: 
     playLoop(); 
     break; 
    case 2: 
     helpPage(); 
     break; 
    case 3: 
     devMode(); 
     break; 
    } 

} 

出於某種原因,它在此菜單中自動輸入2。並在此菜單上跟隨3:

// main menu 
     System.out.println("This is Day " + (i+1) + " you have " + dayActions + " Actions left."); 
     System.out.println("1. View Pet Status"); 
     System.out.println("2. Shop"); 
     System.out.println("3. Skip Action"); 
     System.out.println("4. Play"); 
     System.out.println("5. Feed"); 
     System.out.println("6. Bathroom"); 
     System.out.println("7. Sleep"); 

     int choice = in.nextInt(); 
     System.out.println(); 

我認爲這可能是由於我的GameState類,但我不確定。 遊戲狀態類:

abstract class GameState { 

    abstract void update(); 

    protected void pushState(GameState state) { 
     PetGame.pushState(state); 
    } 

    protected void popState() { 
     PetGame.popState(); 
    } 
} 

StoreState(這就是它是跳躍到類在我的代碼我找不到它的任何引用不知道爲什麼它是怎麼回事。)

public class StoreState{ 

    @Override 
    void update() { 
     // TODO Auto-generated method stub 

    } 


} 

謝謝你的幫助。

+0

請不要**更新您的問題,因爲您的問題正在解決。這完全改變了最初問題的背景。在做這件事情時,你沒有在這裏做任何好處。在你的原始問題下添加一個編輯部分,說明你面臨的新問題。 –

+0

@OusmaneMahyDiaw您的意圖通常是正確的,但*「在原始問題下面追加編輯部分,說明您面臨的新問題」*是錯誤的。必須在新的帖子/問題中提出一個新問題(這已經在meta上多次提出並討論過,例如:https://meta.stackoverflow.com/questions/298948/question-answered-buta-a-新問題出現) – Tom

+0

@Tom謝謝,還在學習你看到的^^系統。讚賞。 –

回答

-1

你需要利用break聲明特定case已經得到滿足後跳出switch聲明,否則,你會得到一種叫做fallthrough

case 1: 
    playLoop(); 
    break; 
case 2: 
    helpPage(); 
    break; 
case 3: 
    devMode(); 
    break; 
+0

第一:這個問題是一個騙局,所以不要回答(代之以標記)。第二:在'case'之後和實際方法調用之前的'break'? – Tom

+0

我稱之爲:不要發佈不好的答案。 – Tom

+0

我已經添加了它們,但它似乎仍然因爲可能的StoreState而停止? –