2015-10-26 12 views
-2

我需要此代碼在用戶嘗試輸入字符串而不是int時產生錯誤消息。我會怎麼做呢?產生錯誤消息而不是崩潰的掃描程序代碼

import java.util.Scanner; 
    public class Testing { 
     public static void main (String [] args){ 
     Scanner s = new Scanner(System.in); 
     System.out.println("Please enter an int"); 
     input = s.nextInt(); 






     } 
    } 

回答

1

使用循環。檢查是否有int。如果沒有顯示消息。喜歡的東西,

Scanner s = new Scanner(System.in); 
while (true) { 
    System.out.println("Please enter an int"); 
    if (s.hasNextInt()) { 
     input = s.nextInt(); 
     // ... 
     break; 
    } 
    System.err.printf("%s isn't an int%n", s.next()); 
} 
+1

既然你在'if'塊中'break',就不需要'else'塊了。只需在'if'語句後面輸出錯誤(到'System.out')。 – Andreas

+0

@Andreas足夠公平。編輯。另外,它切換到'printf'。 –

1

檢查用戶提供適當的inthasNextInt()方法。

  • 如果驗證正常,請用nextInt()讀取該值。
  • 如果值不是int您可以使用next()來消耗它(您不必真正使用該值,但需要從掃描儀中取出,以便從用戶讀取其他值)。
相關問題