개주 훈련일지/🏋️ 전집중 호흡 훈련

정수만 입력 받기 (나머진 모두 예외처리)

lshfood2 2025. 10. 24. 10:59

private static Scanner scanner = new Scanner(System.in);

public int getNum() {

 

int num; // scope(유효범위) 이슈

while(true) {

try { //오류가 발생할 수 있는 경우의 수

System.out.print("주민번호입력 >> ");  // 주민번호 입력시 num이 아니라 String이 들어올 수 있다!

num = scanner.nextInt(); //그래서 try에 입력파트가 들어가야함.

}

catch(InputMismatchException e) { //정수 외 입력이 발생한 경우 아래 행동 실시!

scanner.nextLine(); //버퍼를 먹어줘야 반복문 오류가 발생하지 않는다.

 

System.out.println("정수만 입력가능합니다!");

System.out.println("다시 확인후 입력해주세요!");

continue; //컨티뉴가 있어야 아래 행동을 수행하지 않고 다시 입력부분으로 되돌린다.

}

 

if(100<num && num<200) {

break;

}

System.out.println("번호를 다시 확인후 입력해주세요!");

}

return num;

}

위와 같이 쓰면 사용자 입력을

정수로 강제할 수 있다.

 

※ 유의사항 2가지

1) 예외가 발생했을 시 버퍼 공간을 먹기 위해 

catch부분에 scanner.nextLine(); 꼭 적용하기!

 

2) InputMismatchException; 의 경우

기본 제공항목이 아니라서 import가 추가되어야한다.

import java.util.InputMismatchException;

import java.util.Scanner;