Java 버퍼 비우기

반응형

Scanner를 이용하여 입력을 받다가 '\n' 개행 문자가 버퍼에 들어가서 입력이 중복되거나 

에러가 생기는 경우가 있습니다.

Scanner sc = new Scanner();
sc.nextLine()

에러를 방지하기 위해 입력을 받고 개행문자가 들어가는 곳 다음에 대기가 필요합니다.

sc.nextLine()를 사용하여서 개행문자를 한번 받아준다면

에러를 해결 할 수 있습니다.

import java.util.Scanner; 

public class scanner { 

	public static void main(String[] args) { 
	   // TODO Auto-generated method stub 

       Scanner sc = new Scanner(System.in); 

       System.out.println("이름을 입력하세요."); 
       String name = sc.next(); 
		
       System.out.println("나이를 입력하세요."); 
       int age = sc.nextInt(); 
		
       sc.nextLine(); //버퍼클리어 
       System.out.println("학교를 입력하세요"); 
       String school = sc.nextLine(); 

       System.out.println("이름은 :" + name); 
       System.out.println("나이는 : " + age); 
       System.out.println("학교는 : "+ school); 
	} 
}

여기서 만약 sc.nextLine()으로 받아주지 않는다면

나이를 입력하세요 당시에 enter 키가

학교를 입력하세요 아래의 Scanner에 입력되어서 함수가 끝나버립니다.

이러한 버퍼 상태를 제거해야면 그다음 입력 함수를 받을 수 있습니다.

 

728x90
반응형