문제풀이/Java
[Java] 계산기(Calculator)
by AngieLee
2021. 5. 15.
import java.util.*;
public class Calculator {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
String str1, str2;
String oper;
// 첫번째 수
while(true) {
System.out.print("첫번째 수: ");
str1 = scr.nextLine();
if(str1.equals("") == true) {
System.out.println("숫자를 정확하게 입력해 주세요");
continue;
}
// 문자가 포함인가? -> 다시 입력
boolean check = true;
for (int i = 0; i < str1.length(); i++) {
char c = str1.charAt(i);
int asc = (int) c;
if(asc < 48 || asc > 57) {
check = false;
break;
}
}
/*
if(check == true) {
System.out.println("모두 숫자로 되어있습니다");
break;
}
System.out.println("문자가 포함되어 있습니다. 숫자를 다시 입력해 주세요");
*/
if(check == false) {
System.out.println("문자가 포함되어 있습니다. 숫자를 다시 입력해 주세요");
continue;
}
System.out.println("모두 숫자로 되어있습니다");
break;
}
// 연산자
// 다른 문자가 입력이 되었는지? -> 다시 입력
while(true) {
System.out.print("연산자(+, -, *, /): ");
oper = scr.nextLine();
if(oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
System.out.println("정상적인 연산자 입력");
break;
}
System.out.println("정확한 연산자를 입력해 주세요");
}
// 두번째 수
while(true) {
System.out.println("두번째 수: ");
str2 = scr.nextLine();
if(str2.equals("") == true) {
System.out.println("숫자를 정확하게 입력해 주세요");
continue;
}
//문자가 포함인가? -> 다시입력
boolean check = true;
for (int i=0; i<str2.length(); i++) {
char c = str2.charAt(i);
int asc =(int) c;
if (asc < 48 || asc > 57) {
check = false;
break;
}
}
if (check == false) {
System.out.println("문자가 포함되어 있습니다. 숫자를 다시 입력하세요");
continue;
}
// 연산자 '/' -> 0 다시 입력
if(oper.equals("/") && str2.equals("0")) {
System.out.println("계산할 수 없는 값입니다");
continue;
}
System.out.println("모두 숫자로 되어있습니다");
break;
}
// 문자열 -> 숫자
int num1, num2;
num1 = Integer.parseInt(str1);
num2 = Integer.parseInt(str2);
// 연산
switch (oper) {
case "+" :
System.out.println("결과는: "+ (num1 + num2));
break;
case "-" :
System.out.println("결과는: "+ (num1 - num2));
break;
case "*" :
System.out.println("결과는: "+ (num1 * num2));
break;
case "/" :
System.out.println("결과는: "+ (num1 / num2));
break;
}
}
}