在Java 中調試NoSuchElementException
使用Java 的Scanner 類別時遇到「NoSuchElementException」時,提供的輸入與班級的表示期望。當掃描器嘗試檢索某個值但未找到任何值時,就會發生該錯誤。
請考慮以下程式碼片段:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1, number2, sum; System.out.print("Enter First Integer: "); number1 = input.nextInt(); System.out.print("Enter Second Integer: "); number2 = input.nextInt(); sum = number1 + number2; System.out.printf("Sum is %d\n", sum); } }
如果使用者只輸入一個整數並在輸入其次,它會拋出一個NoSuchElementException。
解決方案
要解決此問題,請在讀取之前檢查另一個整數的可用性。以下是程式碼的修改版本:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle input error or set number1 to a default value }
透過合併此檢查,程式碼可確保僅在可用時讀取整數,從而防止出現異常。
替代方案Option
另一種方法是使用hasNextLine() 方法檢查是否有進一步的輸入,然後呼叫nextLine() 在嘗試檢索另一個整數之前清除緩衝區。
以上是使用Java的'Scanner”時如何避免'NoSuchElementException”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!