문제

: 첫 입력 후 다음 입력을 받아야 하는 상황에서 입력을 받지 못하고 넘어가버린다. 

    	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

+ Recent posts