공부/JAVA

Scanner와 버퍼

JangGiraffe 2016. 4. 12. 11:19

Scanner를 이용해 정수를 입력받기. 에러시 다시 입력받기 위한 프로그램이다.


		while(true){
			try{
				System.out.println("정수입력");
				n = sc.nextInt();
				break;
			}catch(InputMismatchException e){
				sc.next();
				System.out.println("error :"+ e.toString());
			}
		}
catch문에서 sc.next()를 쓰는 이유? - 정수 이외의 문자를 입력하면 sc.nextInt()에서 에러가 발생하고 키 버퍼(?)에서 값이 빠져나가지 않은 상태가 되며 catch문을 무한 반복하게 된다. 때문에 sc.next()를 사용해 버퍼의 값을 강제로 비워주는 작업이 필요하다.


반응형