[내일배움캠프] Java 기초문법으로 만드는 계산기 Step1.

김재진·2025년 12월 9일

내일배움캠프

목록 보기
12/70

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; // double 타입으로 숫자를 받는다.
            try { // 숫자가 아닌 다른 문자를 입력 될 예외를 처리하기 위해 try - catch문 사용
                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(); // 연산자를 String 타입으로 받음

            if (op.equals("/") && num2 == 0) {
                System.out.println("0으로 나눌 수 없습니다.");
                continue;// 나눗셈을 할 때 분모를 0으로 할 경우 예외 처리를 위해 if 문 사용
            }

            double result = 0;

            switch (op) { // 4개의 연산자마다의 계산 방법을 작성, 다른 문자를 입력 할 경우 안내 문구
                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();// 계산을 지속 할 경우 n,N을 제외한 문자 입력 시 반복

            if (again.equalsIgnoreCase("N")) { // n,N을 입력시 종료
                break;
            }

        }

        System.out.println("계산을 종료합니다.");
        sc.close();

    }
}

3. 어려웠던 점

  • 0으로 나눌 수 없다는 예외 처리를 진행 할 때 처음에 switch 문 안에 if 문으로 작성하였으나 그렇게 할 경우 0으로 나눌 수 없습니다 라는 문구와 동시에 결과 값 0 이 출력되어서 이를 수정하기 위해서 계산하기 전에 먼저 예외처리를 하기 위해서 결과 값 위로 코드를 수정하였다.
       
profile
개발공부 처음해보는 사람

0개의 댓글