> Java > java지도 시간 > Java 스캐너에서 NoSuchElementException이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Java 스캐너에서 NoSuchElementException이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-05 15:03:14
원래의
651명이 탐색했습니다.

Why Does My Java Scanner Throw a NoSuchElementException, and How Can I Fix It?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿