//Scanner sc = new Scanner(System.in); -> 함수로 빼줌
//계산기
int num1, num2;
String oper;//연산자
int result = 0;
String strNum1, strNum2;
//TODO: 입력
strNum1 = numberInput("첫번째 수");
/* -> 함수로 빼줌
while(true) {
System.out.println("첫번째 수 = ");
strNum1 = sc.next();
boolean b = numberOk(strNum1);
if (b==true) {
System.out.println("숫자가 아닙니다. 다시 입력해 주십쇼");
continue;
}
break;
}
*/
/*함수로 빼줌
boolean noNumber = false;
for (int i = 0; i < strNum1.length(); i++) {
char c = strNum1.charAt(i);
if ((int)c < 48 || (int)c > 57) {
noNumber = true;
break;
}
}
*/
//System.out.println("(+,-,*,/) = "); ->함수로 빼줌
//oper = sc.next();
oper = operatorInput();
//System.out.println("두번째 수 = ");->함수로 빼줌
//strNum2 = sc.next();
strNum2 = numberInput("두번째 수");
// 문자열 -> 숫자
num1 = Integer.parseInt(strNum1);
num2 = Integer.parseInt(strNum2);
//TODO: 계산
result = calProcess(num1, num2, oper);
//TODO: 결과
System.out.println(num1+" "+oper+" "+num2+" = "+result);
}
static String operatorInput() {
Scanner sc = new Scanner(System.in);
String oper;
while(true) {
System.out.println("(+,-,*,/) = ");
oper = sc.next();
if (oper.equals("=") || oper.equals("-") == true ||
oper.equals("*") == true || oper.equals("/") == true) {
break;
}
System.out.println("연산기호가 아닙니다. 다시 입력해 주십쇼");{
}
}
return oper;
}
static String numberInput(String num12) {//숫자 입력을 받기위한 함수
Scanner sc = new Scanner(System.in);
String strNum1;
while(true) {
System.out.println(num12+"= ");
strNum1 = sc.next();
boolean b = numberOk(strNum1);//numberOk함수를 numberInput에서 호출
if (b==true) {
System.out.println("숫자가 아닙니다. 다시 입력해 주십쇼");
continue;
}
break;
}
return strNum1;
}
// return : true(숫자가 아님) false(모두 숫자)
static boolean numberOk(String snum) { //숫자인지 아닌지 판정하기 위한 함수
boolean noNumber = false;
for (int i = 0; i < snum.length(); i++) {
char c = snum.charAt(i);
if ((int)c < 48 || (int)c > 57) {
noNumber = true;
break;
}
}
return noNumber;
}
static int calProcess(int n1, int n2, String oper) {
int r = 0;;
switch (oper) {
case "+":
r = n1 + n2;
break;
case "-":
r = n1 - n2;
break;
case "*":
r = n1 * n2;
break;
case "/":
r = n1 / n2;
break;
}
return r;