문제
: 첫 입력 후 다음 입력을 받아야 하는 상황에서 입력을 받지 못하고 넘어가버린다.
System.out.print("정수 입력: ");
sc.nextInt();
//sc.nextLine();
System.out.print("문자열 입력: ");
sc.nextLine();
System.out.println("종료");
-출력-
정수 입력: 10
문자열 입력: 종료
원인
: 버퍼에 Enter가 남아 있다.
- next(): 문자열을 입력받되 공백과 Enter를 포함하지 않고,
- nextInt(): 정수를 입력받되 공백과 Enter를 포함하지 않으며,
- nextDouble(): 실수를 입력받되 공백과 Enter를 포함하지 않는다.
=> 공백이나 Enter 입력 전까지의 문자나 숫자만 입력된다.
=> Enter가 버퍼에 남는다.
=> 다음 입력에서 값을 입력한 것으로 인식되어 넘어가고 입력을 못 받는다.
해결책
: nextLine()
- 공백과 Enter까지 입력을 받는다.
=> 공백을 포함해서 엔터까지 버퍼에 들어간다.
System.out.print("정수 입력: ");
sc.nextInt();
sc.nextLine();
System.out.print("문자열 입력: ");
sc.nextLine();
System.out.println("종료");
-출력-
정수 입력: 10
문자열 입력: nextLine method 사용
종료
'Language > Java' 카테고리의 다른 글
Generic (0) | 2025.04.19 |
---|---|
BigDecimal (2) | 2025.04.18 |
OOP - 다형성 (0) | 2025.04.15 |
OOP - 추상화 (0) | 2025.04.15 |
OOP - 상속과 오버라이딩 (0) | 2025.04.15 |