* 계산기 프로그램 : 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);
- 업그레이드 전에는 숫자를 잘못 입력하면 오류가 발생되는데, 업그레이드를 하니 "숫자를 정확히 입력해주세요."라는 문구가 출력된다.
댓글