2014-07-13 27 views
0

我想在我的代碼中繼續前進,我得到一個錯誤,我不知道如何解決。 代碼達到了要求我提供選項的程度,然後當我鍵入時,我希望根據用戶輸入的內容輸出「這是字母S」或「這是字母T」。請記住兩件事。 1)我需要使用「char getOption()」方法,2)我是新手,請耐心等待。我得到的錯誤是:getOption不工作,不斷的錯誤

在此先感謝。

import java.util.Scanner; 

public class shapes { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     displayWelcome(); 
     displayMenu(); 
     char resp = getOption(); 
     if(resp == 'S')    
      System.out.println("This is letter S"); 

     else if(resp == 'T') 
      System.out.println("This is letter T"); 

    }  

    public static void displayWelcome() { 

     System.out.println("WELCOME TO THE SHAPE PRINTER!"); 
     System.out.println("-----------------------------"); 

    } 


    public static void displayMenu() { 

     System.out.println("Options: "); 
     System.out.println(" S)quare"); 
     System.out.println(" H) Shape"); 
     System.out.println(" T)riangle"); 
     System.out.println(" X) Shape"); 
     System.out.println(" Q)uit"); 

    } 


    public static char getOption() { 

     Scanner input = new Scanner(System.in); 

     input.nextInt(); 
     char c = input.next().charAt(0); 
      return c; 

    }  

}

//在線程異常 「主」 java.util.InputMismatchException //在java.util.Scanner.throwFor(Scanner.java:864)
//是java。 util.Scanner.next(Scanner.java:1485)
// at java.util.Scanner.nextInt(Scanner.java:2117)
// at java.util.Scanner.nextInt(Scanner.java:2076)
//在shapes.getOption(shapes.java:60)
// at shapes.main(shap es.java:27)

+0

此行的任何原因input.nextInt(); ? –

+0

我被告知我必須清除char/Strings和Int/Doubles掃描器之間的緩衝區 – aycajr

+0

nextInt等待int輸入,我不認爲它清除任何類型的緩衝區。嘗試刪除。 –

回答

0

似乎是

input.nextInt(); 

在你的代碼沒有真正的需要。由於此,您的代碼執行將請求兩個用戶輸入,而不是一個。只要刪除這個,你應該很好。

+0

非常感謝 – aycajr