while 그리고 exception
사용자의 입력을 받을 때 프로그램이 정상적으로 작동하기 위한 조건에 맞지 않는 입력이 들어오면 exception 을 사용하여 재 입력을 유도한다.
이를 위해 while 과 try 그리고 continue 를 이용할 수 있다.
예를 들어 사용해 보면,
입력은 숫자만 받아야 하는 조건이 있다.
숫자인지 문자인지 일단 입력받고 판별하기 위해 모든 입력을 문자로 입력받는다.
그리고 이를 숫자형으로 변환하는 과정에서 try 와 catch 를 사용하고 숫자가 맞다면 실행되고 있는 while loop 를 break 로 빠져나간다. 하지만, 입력 데이터에 문자가 섞여 있다면 catch exception 으로 분류되어 메시지가 출력되고 continue 를 만나게 되어 break 가 실행되지 못하여 다시 while loop 를 시작하게 된다. 이 반복은 숫자만 입력이 될 때까지 지속된다.
코드 보기
import java.util.Scanner;
public class MyClass {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int number = 0;
while (true) {
System.out.print(" 숫자입력 >> ");
String strNum = sc.next();
try {
number = Integer.parseInt(strNum);
} catch (Exception e) {
System.out.println(" 숫자가 아닌 글자있음.");
continue;
}
break;
}
System.out.println("number = " + number);
sc.close();
}
}
// 숫자입력 >> 1c34
// 숫자가 아닌 글자있음.
// 숫자입력 >> 123d
// 숫자가 아닌 글자있음.
// 숫자입력 >> 1234
// number = 1234
'알아가기 > Java' 카테고리의 다른 글
[Java] ArrayList 모든 원소 출력하기 (0) | 2022.12.31 |
---|---|
[Java] 파일 상대경로 설정 (Relative Path on Mac) (0) | 2022.12.27 |
[Java] array 값 정렬하기 w/o Arrays.sort() (0) | 2022.12.24 |
[Java] for-each 사용 (0) | 2022.12.23 |
[Java] Scanner 와 BufferedReader 사용 (0) | 2022.12.21 |