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;


+ Recent posts