>Java >java지도 시간 >Java의 스캐너 클래스를 사용할 때 'NoSuchElementException'이 발생하는 이유는 무엇입니까?

Java의 스캐너 클래스를 사용할 때 'NoSuchElementException'이 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-04 02:45:111200검색

Why Am I Getting a

Java.Util.Scanner의 "NoSuchElementException" 문제 해결

Java의 "NoSuchElementException" 오류는 일반적으로 Java.Util.Scanner에서 읽기 시도로 인해 발생합니다. Scanner 클래스를 사용하는 폐쇄형 또는 빈 입력 소스. 귀하의 경우 이 예외는 사용자로부터 두 번째 정수를 읽으려고 할 때 발생합니다(코드의 17행).

이 문제를 디버깅하려면 Scanner 클래스를 자세히 살펴보겠습니다.

스캐너 클래스

스캐너 클래스를 사용하면 System.in( 콘솔). 해당 메소드를 사용하면 소스에서 정수(nextInt())를 비롯한 다양한 데이터 유형을 추출할 수 있습니다.

코드에서 "input"이라는 Scanner 개체를 생성하여 콘솔에서 입력을 읽습니다. 그런 다음 두 개의 정수 값을 변수 number1과 number2로 읽으려고 시도합니다.

오류 분석

"NoSuchElementException" 오류는 Scanner 개체가 정수를 찾을 것으로 예상하고 있음을 나타냅니다. 입력의 다음 줄에 있지만 찾을 수 없습니다. 이는 여러 가지 이유로 발생할 수 있습니다.

  • 정수 입력 없음: 콘솔의 별도 줄에 실제로 두 개의 정수를 입력했는지 확인하세요.
  • 잘못된 입력 유형: 제공하려는 입력이 유형인지 다시 확인하세요. int.
  • 스캐너 닫힘: 입력 읽기를 시도하기 전에 스캐너가 닫혀 있지 않은지 확인하세요.

제안된 솔루션

이 문제를 해결하려면 추출을 시도하기 전에 스캐너에 읽을 또 다른 정수가 있는지 확인하는 검사를 추가하는 것이 좋습니다. it:

if (input.hasNextInt()) {
  number2 = input.nextInt(); 
} else {
  // Handle the case where no integer is found
  // (e.g., display an error message or set number2 to a default value)
}

이 검사를 통합하면 읽기 전에 사용 가능한 다른 정수가 있는지 확인할 수 있습니다. 없는 경우 오류 메시지를 표시하거나 2번을 기본값으로 설정하는 등 적절한 조치를 취할 수 있습니다.

위 내용은 Java의 스캐너 클래스를 사용할 때 'NoSuchElementException'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.