首頁 >Java >java教程 >如何使用Java的掃描器優雅地處理無效的整數輸入?

如何使用Java的掃描器優雅地處理無效的整數輸入?

DDD
DDD原創
2024-12-18 07:07:10225瀏覽

How to Gracefully Handle Invalid Integer Input with Java's Scanner?

如何使用Scanner 處理無效輸入

在使用Scanner 進行使用者輸入時,處理無效輸入(例如非數字字元)是非常重要的對於程序的穩健性至關重要。讓我們探索解決此問題的解決方案。

考慮以下程式碼片段:

Scanner kb = new Scanner(System.in);
int num1;
int num2 = 0;

System.out.print("Enter number 1: ");
num1 = kb.nextInt();

while (num2 < num1) {
    System.out.print("Enter number 2: ");
    num2 = kb.nextInt();
}

此程式碼旨在從使用者取得兩個整數,確保第二個數字 (num2) 是大於第一個 (num1)。但是,它有兩個限制:

  1. 它不會檢查非數字輸入,如果使用者輸入字元而不是數字,則會導致程式崩潰。
  2. 即使在為 num2 輸入有效輸入後,迴圈仍會繼續,因為 while 條件總是 true。

為了解決這些問題,我們可以利用Scanner.hasNextInt() 方法,該方法確定輸入中的下一個標記是否可以解釋為整數。

以下程式碼片段包含這些改進:

Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next();
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
    while (!sc.hasNextInt()) sc.next();
    num2 = sc.nextInt();
} while (num2 < num1);
System.out.println(num1 + " " + num2);

透過檢查有效使用 hasNextInt() 輸入並忽略無效字符,程式可以優雅地處理非數字輸入。此外,do-while 迴圈可確保第二個數字大於第一個數字,從而防止在獲得有效輸入後繼續循環。

以上是如何使用Java的掃描器優雅地處理無效的整數輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn