Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

카테고리 없음[8일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 본문

내일배움캠프 사전 학습

카테고리 없음[8일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기

dev.hyuck 2025. 11. 20. 18:10

● 계산기 만들기

 

계산기 만들기 코드

1. Scanner 사용
2. swich 반복문 사용
3. 스캐너 변수 이름 calculatung
4. try 사용을 하는 이유는 예외 처리를 하기 위함이다.


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner calculating = new Scanner(System.in);

        System.out.println("=== 자바 계산기 만들기 ==");

        while (true) { // 반복문
            try { // 예외 처리를 하기 위해 try 문을 사용 한다.
                // 첫번째 숫자 입력
                System.out.println("1~9 사이의 숫자를 입력 하세요.");
                System.out.print("입력: ");
                String input = calculating.nextLine();
                if (input.equals("n")) {
                    System.out.println("계산기를 종료 합니다.");
                    break;
                }

                int num1 = Integer.parseInt(input);
                if (num1 < 1 || num1 > 9) {
                    System.out.println(" 1~9 사이의 숫자만 입력 가능합니다.");
                    continue;
                }

                // 연산자 입력
                System.out.println("(+,-,*,/) 연산자를 입력하세요");
                System.out.print("입력: ");
                String op = calculating.nextLine(); // 연산자를

                if (!op.matches("^[+\\-*/]$")) { // 아직 완벽하게 이해 못해서 gpt 사용
                    System.out.println(" 올바른 연산자 입력이 아닙니다.");
                    continue;

                }

                //두번째
                System.out.println("1~9 사이의 숫자를 입력하세요");
                System.out.print("입력: ");
                String input2 = calculating.nextLine();
                int num2 = Integer.parseInt(input2);

                if (num2 < 0 || num2 > 9) {
                    System.out.println("1~9 사이의 숫자만 입력 가능합니다.");
                    continue;
                }


                int pad = 0;
                boolean flag = false;

                switch (op) {
                    case "+":
                        pad = num1 + num2;
                        break;
                    case "-":
                        pad = num1 - num2;
                        break;
                    case "*":
                        pad = num1 * num2;
                        break;
                    case "/":
                        if (num2 == 0){
                            System.out.println("0으로 나눌 수 없습니다!");
                            System.out.println();
                            continue;
                        }
                        pad = num1 / num2;
                        break;
                }

                System.out.println("==============");
                System.out.println("결과: " + num1 + " " + op + /* 연산자 */ " " + num2 + " = " + pad);
                System.out.println("==============");
                System.out.println();


                System.out.println(); // 줄바꾸기
                System.out.println(" 계속 하시겠습니까? (y/n)");
                String again = calculating.nextLine();


            }    catch (IndexOutOfBoundsException e) {
                System.out.println(" 잘못된 입력 입니다. 숫자만 입력 하세요.");
                calculating.nextLine();
                } catch (NumberFormatException e) {
                System.out.println(" 숫자만 입력 하세요 ");
            }
        }

        calculating.close();
    }
}
package github.calculating;

// 계산기 정리
// sacnner를 활용 했나? ㅇㅇ
// ZOOM 해설 메모
// 2025 11 - 20 해설 시작

// 1-1 Scanner
// 1-2 내 코드의 장점
// 1-3 타인의 코드 장점
// 1-4 내 코드를 설명 할 수 있다. 나는 반복문을 while를 사용 했으며 continue로 반복문 실행
// 1-5

// 2-1 반복문 (무한루프) 구성
// 2-1 while (true)
// 2-2 netxDouble 사용시 소수점까지 계산이 가능하기 때문에 nextDouble 쓰는게 유리하다.
// 2-3 default : case에서 아닌 경우

// continue; // while 처음으로 돌아가기
import java.util.InputMismatchException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner calculating = new Scanner(System.in);

        System.out.println("=== 자바 계산기 만들기 ==");

        while (true) { // 반복문

            double num1;
            try { // 예외 처리를 하기 위해 try 문을 사용 한다.
                // 첫번째 숫자 입력
                System.out.println("1~9 사이의 숫자를 입력 하세요 : ");
                num1 = calculating.nextDouble();
            } catch (InputMismatchException e) {
                System.out.println("숫자만 입력해주세요.");
                calculating.nextLine();
                continue;
            }

            // 연산자 입력
            System.out.println("(+, -, *, /) 연산자를 입력 하세요 : ");
            String op = calculating.next();


            double num2;
            try {
                System.out.println("1~9 사이의 숫자를 입력하세요");
                num2 = calculating.nextDouble();
            } catch (InputMismatchException e) {
                System.out.println("숫자를 입력하세요");
                calculating.nextLine();
                continue;
            }

            double pad;
            switch (op) {
                case "+":
                    pad = num1 + num2;
                    break;
                case "-":
                    pad = num1 - num2;
                    break;
                case "*":
                    pad = num1 * num2;
                    break;
                case "/":
                    if (num2 == 0) {
                        System.out.println(" 0은 나눌수 없습니다.");
                        continue;
                    }
                    pad = num1 / num2;
                    break;
                default:
                    System.out.println("지원하는 연산자만 입력 하세요");
                    continue;
            }

            System.out.println("==============");
            System.out.println("결과: " + num1 + " " + op + /* 연산자 */ " " + num2 + " = " + pad);
            System.out.println("==============");
            System.out.println();

            System.out.println("계속 계산하시겠습니까? (Y/N): ");

            String again = calculating.next();

            if (again.equalsIgnoreCase("n")){
            break;
        }

        }
        System.out.println("계산기를 종료합니다.");
        calculating.close();
    }
}

 

TIL 적어 보기 

  • 공부하면서 집중을 깨뜨리는 요인(환경, 감정, 습관 등)을 점검하고 대처할 수 있는 아이디어를 적어보아요!

: 공부 하는동안 전화 오거나 흐름이 한번 끊어지면 다시 집중 하기 힘듭니다.