사용자로부터 두개의 숫자와 한개의 연산자를 입력받아 결과를 double 형으로 출력하는 간단한 계산기를 만들어보았다.
<주요 기능>
1. 두개의 숫자와 연산자를 차례로 입력받음
2. 잘못된 연산자를 입력받을 경우 잘못된 연산자임을 알려주고 다시 입력하도록 알림
-> 연산자를 요소로 갖는 ArrayList를 정의하고 입력한 값이 포함되어있지 않으면 오류 코드 출력 ( if 문을 사용한것보다 간결해짐)
3. 결과가 출력되고나면 계산을 계속할지 종료할지 물어보고 계산의 처음으로 돌아가거나 계산을 종료함
-> do-while문 사용
import java.util.Arrays;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
System.out.println("===Java Calculator===");
Scanner scanner = new Scanner(System.in);
double num1;
double num2;
String howto;
int endOption;
do {
System.out.println("계산을 시작합니다.");
System.out.println("첫번째 숫자를 입력해주세요.");
num1 = scanner.nextDouble();
System.out.println("두번째 숫자를 입력해주세요.");
num2 = scanner.nextDouble();
System.out.println("연산자를 입력해주세요.");
howto = scanner.next();
howto = getHowTo(scanner, howto);
switch (howto) {
case "+":
System.out.printf("연산 결과는 %f입니다.\n", num1 + num2);
break;
case "-":
System.out.printf("연산 결과는 %f입니다.\n", num1 - num2);
break;
case "/":
if (num2 == 0) {
System.out.println("0으로는 나눌 수 없습니다.");
} else {
System.out.printf("연산 결과는 %f입니다.\n", num1 / num2);
}
break;
case "*":
System.out.printf("연산 결과는 %f입니다.\n", num1 * num2);
break;
}
System.out.println("계산을 계속 하시려면 [1]을, 종료하시려면 [0]을 압력해주세요.");
endOption = scanner.nextInt();
}
while (endOption == 1);
System.out.println("계산기를 종료합니다.");
}
private static String getHowTo(Scanner scanner, String howto) {
String[] operators = {"+", "-", "/", "*"};
while (!Arrays.asList(operators).contains(howto)) { // ArrayList를 사용해 확인
System.out.println("잘못된 연산자입니다. 올바른 연산자를 입력해주세요.");
System.out.println("연산자를 입력해주세요.");
howto = scanner.next();
}
// if (!howto.equals("+") && !howto.equals("/") && !howto.equals("*") && !howto.equals("%")) {
// do {
// System.out.println("잘못된 연산자입니다. 올바른 연산자를 입력해주세요.");
// System.out.println("연산자를 입력해주세요.");
// howto = scanner.next();
// }
// while (!howto.equals("+") && !howto.equals("/") && !howto.equals("*") && !howto.equals("%"));
// }
return howto;
}
}
'미니 프로젝트' 카테고리의 다른 글
알고리즘 - Blob 크기 구하기(재귀) (0) | 2023.03.22 |
---|---|
알고리즘 - 미로 출구찾기(재귀) (0) | 2023.03.22 |
TRPG게임 만들기 - 배열, 형변환(String -> int) (0) | 2023.03.12 |
글자 대체 프로그램 - 배열, for 반복문 (0) | 2023.03.11 |