728x90
반응형
1. scanner.nextInt() 사용:
- 기능: 이 코드는 nextInt()를 사용하여 입력에서 정수를 직접 읽어옵니다.
- 동작: 사용자가 정수를 입력하면 잘 작동합니다. 그러나 입력이 유효한 정수가 아닐 경우(예: 문자나 특수 문자가 포함된 경우) InputMismatchException을 발생시킵니다.
- 라인 읽기: nextInt()는 정수 부분만 읽고 입력 버퍼에 개행 문자를 남기므로, 이후 입력 작업이 전체 라인을 기대하는 경우 문제가 발생할 수 있습니다.
int num = scanner.nextInt(); // 정수를 직접 입력받아서 num 변수에 저장
System.out.println(num);
2. scanner.nextLine() 및 Integer.parseInt() 사용:
- 기능: 이 코드는 nextLine()을 사용하여 입력에서 전체 라인을 문자열로 읽고, Integer.parseInt()를 사용하여 문자열을 정수로 변환하려고 시도합니다.
- 동작: 입력이 문자열로 표현된 유효한 정수일 경우 잘 작동합니다. 입력이 유효한 정수 문자열이 아닐 경우 NumberFormatException을 발생시킵니다.
- 라인 읽기: nextLine()은 개행 문자를 포함한 전체 라인을 읽으므로 입력 버퍼가 비워지고 이후 입력 작업이 새로 시작됩니다.
String input = scanner.nextLine();
int num = Integer.parseInt(input);
System.out.println(num);
차이점 요약:
- 오류 처리:
- nextInt(): 비정수 입력 시 InputMismatchException 발생.
- nextLine() + Integer.parseInt(): 비정수 문자열 입력 시 NumberFormatException 발생.
- 입력 처리:
- nextInt(): 정수 부분만 읽고 버퍼에 개행 문자를 남김.
- nextLine(): 개행 문자를 포함한 전체 라인을 읽어 버퍼를 비움.
- 사용 사례:
- nextInt()는 입력이 정수일 것으로 보장될 때 유용합니다.
- nextLine() + Integer.parseInt()는 전체 라인의 입력을 읽고 처리할 때, 입력 오류를 더 유연하게 처리하고 버퍼를 비워서 이후 입력 작업이 원활하게 이루어지도록 할 때 유용합니다.
728x90
반응형
'JAVA' 카테고리의 다른 글
JAVA: 배열을 이용해서 로또 번호 생성하기 (0) | 2024.07.12 |
---|---|
JAVA: 배열 초기화 시 주의할 점 (0) | 2024.07.12 |
JAVA: 타입 간의 변환 방법 (0) | 2024.07.03 |
JAVA: printf()와 println()의 차이점 (0) | 2024.07.02 |