select 변수의 단순 예외처리
int select = 0; boolean flag = false; do { try { select = sc.nextInt(); flag = false; } catch (Exception e) { // Scanner를 비워주기 위한 명령문 sc.nextLine(); // 또는 // sc = new Scanner(System.in); System.out.println(" 1 ~ 5번을 선택해 주세요."); flag = true; } } while (flag);
select 변수의 예외처리 메소드
/** * * @param sc * @return * * 입력 받을 때 예외 처리 하기 위한 메소드. */ public int intvar(Scanner sc) { System.out.print("intvar() 호출 (사용자 입력 시 숫자만 입력받도록하는 예외처리 메소드) :"); // 일단 숫자 이외에 문자도 받을 수 있도록 하기 위한 변수(select) 선언. // 초기화는 null값이 아니라 ""로 할 것. String select = ""; // 위의 변수에 받은 값들을 Integer형으로 형변환한 후에 값을 대입할 변수(select)선언 후 초기화. int selec = 0; // 입력 받을 문자열 select 변수. select = sc.next(); try { // String 형을 Integer 형으로 형변환. // 형변환이 가능하다면 flag에 false값을 저장하고 while문 종료. // 형변환 가능하지 않다면 catch 문으로 가서 예외처리 이후에 flag에 true값을 대입하여 while문 // 반복. // <수정> // 재귀 함수 방식으로 return intvar(sc);를 호출 하여 다시 입력하도록 함 selec = Integer.parseInt(select); } catch (NumberFormatException e) { System.out.println(" 숫자를 입력해 주세요. "); return intvar(sc); } // select에 값이 Integer형으로 형변환 가능 할때 while 문 종료. // 사용자가 입력한 값을 저장한 select 변수가 Integer형이라면 select 변수에 저장해서 리턴. return selec; }
public void menu() { Scanner sc = new Scanner(System.in); while (true) { // 예외처리 메소드 호출문 int select = intvar(sc); switch (select) { case 1: break;