1. 지금까지 배운 기초문법을 토대로 계산기 만들기
- 지금까지 Java 기초문법에서 배운 내용을 활용하여 2가지 정수와 연산자(+,-,*,/)를 받아서 사칙연산을 하는 계산기 코드를 작성해보았다.
2. Class 없이 기본 연산 기능이 가능한 계산기
- 양의 정수와 연산자를 받는 기능 작성
- 연산자(+,-,*,/) 별로 다른 결과값이 나오게 작성
- 예외 상황에 대한 대처(0으로 나누기, 다른 문자 입력 등)
- 계산의 반복을 끝낼 수 있는 문구 작성
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
double num1;
try {
System.out.println("첫 번째 숫자를 입력하세요: ");
num1 = sc.nextDouble();
} catch (InputMismatchException e) {
System.out.println("숫자를 입력하세요.");
sc.nextLine();
continue;
}
double num2;
try {
System.out.println("두 번째 숫자를 입력하세요: ");
num2 = sc.nextDouble();
} catch (InputMismatchException e) {
System.out.println("숫자를 입력하세요.");
sc.nextLine();
continue;
}
System.out.println("연산자를 입력하세요 (+,-,*,/): ");
String op = sc.next();
if (op.equals("/") && num2 == 0) {
System.out.println("0으로 나눌 수 없습니다.");
continue;
}
double result = 0;
switch (op) {
case "+" -> result = num1 + num2;
case "-" -> result = num1 - num2;
case "*" -> result = num1 * num2;
case "/" -> result = num1 / num2;
default -> {
System.out.println("정확한 연산자를 입력하세요");
continue;
}
}
System.out.println("결과 : " + result);
System.out.println("계산을 계속하시겠습니까? (Y/N): ");
String again = sc.next();
if (again.equalsIgnoreCase("N")) {
break;
}
}
System.out.println("계산을 종료합니다.");
sc.close();
}
}
3. 어려웠던 점
- 0으로 나눌 수 없다는 예외 처리를 진행 할 때 처음에 switch 문 안에 if 문으로 작성하였으나 그렇게 할 경우 0으로 나눌 수 없습니다 라는 문구와 동시에 결과 값 0 이 출력되어서 이를 수정하기 위해서 계산하기 전에 먼저 예외처리를 하기 위해서 결과 값 위로 코드를 수정하였다.