자바 오류 java.util.InputMismatchException
-
Java의
java.util.InputMismatchException
-
java.util.InputMismatchException
오류의 원인 -
java.util.InputMismatchException
오류 수정
이 기사에서는 Java
프로그래밍 언어의 main
스레드에 있는 java.util.InputMismatchException
에 대해 설명합니다.
Java의 java.util.InputMismatchException
JVM은 한 종류의 데이터를 입력으로 수신하지만 데이터의 불일치를 나타내는 다른 유형의 값을 예상할 때마다 java.util.InputMismatchException
을 발생시킵니다. 이는 값이 정규식 패턴과 일치하지 않거나 허용 범위를 벗어남을 나타냅니다.
예를 들어 프로그램은 아래와 같이 짝수인지 홀수인지 확인하기 위해 입력으로 정수
값을 찾고 있습니다.
코드 예:
import java.util.Scanner;
public class example {
public static void main(String[] args) {
int n = 0;
Scanner s = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("Enter a number to check Even/Odd");
n = s.nextInt();
if (n % 2 == 0) {
System.out.println(n + " = EVEN ");
} else {
System.out.println(n + " = ODD ");
}
}
}
}
출력:
Enter a number to check Even/Odd
5
5 = ODD
Enter a number to check Even/Odd
6
6 = EVEN Enter a number to check Even/Odd
z
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at example.main(example.java:8)
java.util.InputMismatchException
오류의 원인
예제에서 java.util.InputMismatchException
이 발생한 이유는 Scanner
클래스를 사용하여 사용자 입력을 받는 경우입니다. 메소드에 지정된 매개변수가 유효하지 않은 경우 InputMissMatchException
이 발행됩니다.
nextInt()
함수에 제공된 값이 String
예외인 경우 예외가 발생합니다. nextInt()
함수는 문자열 값이 아닌 정수 값만 처리할 수 있습니다.
java.util.InputMismatchException
오류 수정
이 오류는 부정확한 데이터로 인해 발생하며 이를 복구하려면 데이터를 수정해야 합니다. 예제에서는 nextInt()
함수를 사용했습니다.
그러나 문자열 매개변수는 지원하지 않습니다. java.util.InputMismatchException
을 해결하려면 입력 유효성 검사가 제대로 작동하고 적절한 데이터 유형 값을 제공하고 있는지 확인해야 합니다.
try catch
메서드를 사용하여 사용자 입력의 유효성을 검사합니다. 사용자가 정수 이외의 잘못된 값을 입력하면 프로그램은 다음 오류를 반환합니다.
오류 출력:
Input value is Invalid please provide an integer value:
완전한 소스 코드:
import java.util.Scanner;
public class example {
public static void main(String[] args) {
int n = 0;
try {
Scanner s = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("Enter a number to check Even/Odd");
n = s.nextInt();
if (n % 2 == 0) {
System.out.println(n + " = EVEN ");
} else {
System.out.println(n + " = ODD ");
}
}
} catch (Exception exp) {
System.out.println(" Input value is Invalid please provide an integer value: ");
}
}
}
출력:
Enter a number to check Even/Odd
6
6 = EVEN
Enter a number to check Even/Odd
z
Input value is Invalid please provide an integer value:
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn