首頁 > Java > java教程 > Java中處理InputMismatchException時如何防止無限迴圈?

Java中處理InputMismatchException時如何防止無限迴圈?

DDD
發布: 2024-12-24 00:38:14
原創
420 人瀏覽過

How to Prevent Infinite Loops When Handling InputMismatchException in Java?

帶有InputMismatchException的try/catch區塊中的無限循環:解決方案

您的Java程式在try中處理InputMismatchException時遇到無限循環/catch 區塊,同時從使用者取得整數輸入。此行為源自於這樣的事實:捕獲 InputMismatchException 後,掃描器仍處於無效狀態,導致無限重複循環。

要解決此問題,您必須在catch 區塊中執行以下操作:

catch (InputMismatchException e) {
    System.out.println("Error!");
    input.next(); // Move to the next line to avoid the infinite loop
}
登入後複製

input.next() 方法將掃描器指標前進到下一行,有效地丟棄導致

或者,您可以在嘗試讀取整數之前使用hasNextInt() 方法,從而確保讀取的值確實是整數。這種方法完全消除了異常處理的需要:

while (true) {
    if (input.hasNextInt()) {
        n1 = input.nextInt();
        break;
    } else {
        input.next(); // Skip non-numeric input
    }
}
登入後複製

請記住,Java Scanner 文件指出,在拋出InputMismatchException 後,掃描器將不會傳遞負責異常的令牌,需要檢索它或透過其他方式繞過。實施這些修改應該可以緩解 Java 程式中無限的循環問題。

以上是Java中處理InputMismatchException時如何防止無限迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板