Java.Util.Scanner의 NoSuchElementException 좌절
"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 중국어 웹사이트의 기타 관련 기사를 참조하세요!