import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
int num1, num2;
String oper;
// 첫번째 수 입력
num1 = number_input("첫번째");
// 연산자를 입력
oper = operatorInput();
// 두번째 수 입력 / + 0 무시
num2 = number_input("두번째");
// 연산
int result = processing(num1, num2, oper);
// 결과 출력
resultPrint(num1, num2, result, oper);
}
// 입력 함수들
static int number_input(String no) {
Scanner scn = new Scanner(System.in);
String str = "";
while(true) {
System.out.print(no + "수 > ");
str = scn.nextLine();
// 공백확인
if(str.equals("")== true) {
System.out.println("숫자만 입력가능(공백x)");
continue;
}
boolean flag = isNumber(str);
if(flag == true) {
break;
}
System.out.println("숫자만 입력가능(문자x)");
}
return Integer.parseInt(str);
}
static String operatorInput() {
// 연산자
Scanner scn = new Scanner(System.in);
String oper;
while (true) {
System.out.print("연산기호 입력 (+, -, *, /) >>");
oper = scn.nextLine();
if (oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
break;
} else { // 연산기호가 다른문자가 입력이 되었는지? -> 다시 입력
continue;
}
}
return oper;
}
// 유틸리티 함수 -> 다른곳에서도 사용가능!
static boolean isNumber(String str) {
boolean flag = true;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c < '0' || c > '9') { // 문자열 확인
flag = false;
break;
}
}
return flag;
}
// 연산처리 함수
static int processing(int n1, int n2, String oper) {
int result = 0;
switch(oper) {
case "+" :
result = n1+n2;
break;
case "-" :
result = n1-n2;
break;
case "*" :
result = n1*n2;
break;
case "/" :
if(n2 == 0) {
System.out.println("'0'은 연산불가!");
}else {
result = n1/n2;
break;
}
}
return result;
}
// 결과 출력
static void resultPrint(int n1, int n2, int result, String oper) {
System.out.println(n1 +" "+oper+" "+n2+" = "+ result);
}
}
메소드 사용해서 계산기 프로그램 만들기!
'문제풀이 > Java' 카테고리의 다른 글
[자바] 문자열을 암호표로 암호화, 복호화 (0) | 2021.05.13 |
---|---|
[자바] 남은 동전 구하기 (0) | 2021.05.12 |
[자바] 계산기 (0) | 2021.05.12 |
[자바] 가위바위보 게임 (0) | 2021.05.11 |
[자바] 배열 순차 정렬 (0) | 2021.05.11 |