2013-10-09 50 views
0

我正在編寫一些用戶輸入長度的代碼,並顯示他們輸入的內容。我只是想知道如何在它上面添加一個錯誤信息,這樣如果他們沒有輸入數字,他們會被告知'請輸入一個數字'然後他們可以重試?解析和驗證用戶輸入時出錯

Scanner in = new Scanner(System.in); 
    System.out.print("Please enter the length in centimeters : "); 
    length1 = in.nextDouble();  
    System.out.println("You entered : " + length1); 
+0

嘗試添加一個類似於'while(user_has_entered!= true'!)的循環,然後在循環中檢查用戶是否輸入了有效設置user_has_entered爲真(或斷開循環),否則發送錯誤! – mjb4

+1

查找嘗試{}趕上{}塊 – tom

+0

此外,改變你的問題標題爲有意義的一個 – Joel

回答

0

此代碼將進行檢查,以確保用戶得到一個號碼作爲輸入:

Scanner in = new Scanner(System.in); 
    double length1; 
    while (true) { 
     System.out.print("Please enter the length in centimeters : "); 
     String s = in.next(); 
     try { 
      length1 = Double.parseDouble(s); 
      break; 
     } catch (NumberFormatException e) { 
      System.out.print("Please enter a number"); 
     } 
    } 

    System.out.println("You entered : " + length1); 

如果用戶給出一個有效的數字輸入,那麼這個數是能夠被解析。否則,將拋出一個NumberFormatException,您可以提示用戶輸入一個數字。由於while循環,代碼將重複,直到用戶輸入有效數字。

+0

請輸入釐米長度:9 您輸入:9.0 值: java.lang.NullPointerExceptionYou進入:0.0:請輸入一個數字想知道我是否無法顯示最後一位?謝謝:) – user2863681

+0

@ user2863681我不明白你在問什麼。 – fvrghl

+0

基本上當我運行該程序,然後輸入一個有效的數字,它會顯示:請輸入釐米長度:9 您輸入:9.0 「」「」「」「值: java.lang.NullPointerExceptionYou進入:0.0:請輸入一個數字「」「」「」以任何方式讓它不顯示控制檯消息中的最後一位,我已經用引號括起來了? – user2863681