NoSuchElementException Java.Util.Scanner 的挫敗感
遇到「NoSuchElementException」錯誤可能會令人困惑,特別是對於像您這樣的Java 新手來說。當 Scanner 類別無法從輸入流檢索下一個標記時,會發生此錯誤。讓我們深入研究您的特定程式碼以找出根本原因:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1; // first number to add int number2; // second number to add int sum; // sum of 1 & 2 // Problem: Reading input values without checking for input availability System.out.print("Enter First Integer: "); number1 = input.nextInt(); // Exception occurs here when no input is provided System.out.print("Enter Second Integer: "); number2 = input.nextInt(); // Exception occurs here if input is not available for this prompt sum = number1 + number2; // Addition occurs, assuming input values are available System.out.printf("Sum is %d\n", sum); // Displays the sum, if input is available } }
問題在於程式碼嘗試讀取輸入而不先驗證輸入是否可用。如果使用者未提供輸入或輸入整數以外的內容,則 input.nextInt() 方法會引發「NoSuchElementException」。
解決方案:
消除對於這個問題,我們需要在嘗試檢索之前檢查輸入可用性it:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle the case where no input is provided }
解釋:
hasNextInt()方法檢查輸入流中的下一個標記是否為整數。如果傳回 true,則可以使用 input.nextInt() 方法來檢索整數。否則,程式碼可以優雅地處理這種情況,例如將 number1 設定為 0 或顯示錯誤訊息。
透過實現此檢查,您的程式碼將不再拋出「NoSuchElementException」並且將按預期運行,從而允許使用者輸入整數併計算其總和。
以上是為什麼我的 Java 掃描器會拋出 NoSuchElementException,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!