본문 바로가기
Coding Note/Java

Java 4-6) 계산기 프로그램 업그레이드 _ 잘못 입력 받았을 때, 문장 출력하고 다시 입력받기

by 푸린이 2021. 12. 12.

* 계산기 프로그램 : 1번째 숫자, 연산자, 2번째 숫자를 입력받아서 연산 결과를 출력하는 프로그램

// 숫자와 연산자를 잘못 입력했을 때, 문장 출력 후 다시 입력받기

Scanner sc = new Scanner(System.in);		

// 변수 선언
String numStr1, numStr2;
int number1, number2;
String oper;
int result = 0;		// 초기화

// 1.입력
	// 1번째 숫자
while(true) {		// 입력받은 수가 숫자가 아니라면 무한반복
	System.out.print("첫번째 수 = ");
	numStr1 = sc.next();
	boolean ok = true;
	for (int i = 0; i < numStr1.length(); i++) {
		int n = (int)numStr1.charAt(i);	// 입력받은 문자열에서 한글자씩 산출하는 문장 → 아스키코드로 변경
		if(n < 48 || n > 57) {		// 숫자가 아님
			ok = false;			
			break;
		}
	}			
	if(ok == true) {	// 입력받은 수가 숫자라면 아래 문장이 출력되지 않음
		break;
	}	
	System.out.println("숫자를 정확히 입력해 주세요.");
}

	// 연산자 + - * /
while(true) {
	System.out.print("연산(+, -, *, /) = ");
	oper = sc.next();
	if(oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
		break;
	}
	System.out.println("연산자를 정확히 입력해 주십시오");
}		

	// 2번째 숫자
while(true) {
	System.out.print("두번째 수 = ");
	numStr2 = sc.next();
	boolean ok = true;
	for (int i = 0; i < numStr2.length(); i++) {
		int n = (int)numStr2.charAt(i);	// 입력받은 문자열에서 한글자씩 산출하는 문장
		if(n < 48 || n > 57) {
			ok = false;			
			break;
		}
	}
	if(ok == false) {
		continue;
	}			
	break;
}

// 문자로 입력받은 수를 숫자로 변경
number1 = Integer.parseInt(numStr1);
number2 = Integer.parseInt(numStr2);

// 2.연산		
switch(oper) {
	case "+":
	result = number1 + number2;
	break;
	case "-":
	result = number1 - number2;
	break;
	case "*":
	result = number1 * number2;
	break;
	case "/":
	result = number1 / number2;
	break;
}
		
// 3.결과 출력
System.out.println(number1 + " " + oper + " " + number2 + " = " + result);

- 업그레이드 전에는 숫자를 잘못 입력하면 오류가 발생되는데, 업그레이드를 하니 "숫자를 정확히 입력해주세요."라는 문구가 출력된다.

댓글