🔌 SPARTA/Assignments

[Java] 계산기 과제 2회차 : 1회차와의 차이점(1)

eunjiom 2026. 1. 19. 21:00

🗒️ 플로우차트

1단계: if문 기초

  •  나이를 입력받아 성인/미성년자 판별

  • 비밀번호 확인 (맞으면 로그인, 틀리면 재입력)


1️⃣ Step 1 

1. 정수형 입력받기 (0을 포함한 양의 정수)

  • 1회차
public class Main {
    static void main() {

        Scanner sc = new Scanner(System.in);
        
            System.out.print("첫번째 숫자를 입력하세요: ");
            int num = Integer.parseInt(sc.nextLine());
            System.out.println("a: " + num);

            System.out.print("두번째 숫자를 입력하세요: ");
            int num2 = Integer.parseInt(sc.nextLine());
            System.out.println("b: " + num2);
  • 2회차
            // 숫자값 입력받기
            System.out.print("첫번째 숫자를 입력하세요: ");
            int num1 = Integer.parseInt(sc.nextLine());

            // 0을 포함한 양의 정수값만 입력받기
            if(num1 < 0) {
                System.out.println("0을 포함한 양의 정수만 입력 가능합니다");
                return;
            }

            System.out.print("두번째 숫자를 입력하세요: ");
            int num2 = Integer.parseInt(sc.nextLine());

            if(num2 < 0) {
                System.out.println("0을 포함한 양의 정수만 입력 가능합니다");
                return;
            }

            System.out.println("num1 :"+ num1 + "num2:" + num2);

 

if(num < 0)문을 사용하여 0보다 작은 숫자 입력 시 오류 문구 출력 추가

 

2. 결과값 출력하기(계산하기)

  • 1회차
            int sum = num + num2;
            int sub = num - num2;
            int mul = num * num2;

            switch (charbox) {
                case '+':
                    System.out.println("a+b= " + sum);
                    break;

                case '-':
                    System.out.println("a-b= " + sub);
                    break;

                case '*':
                    System.out.println("a*b= " + mul);
                    break;

                case '/':
                    if (num2 == 0) {
                        System.out.println("b에 0을 입력할 수 없습니다. 다시 입력해주세요.");
                    } else {
                        int div = num / num2;
                        System.out.println("a/b= " + div);
                    }
                    break;

                default:
                    System.out.println("잘못 입력하였습니다. 다시 입력해주세요.");
                    break;
  • 2회차
            // 사칙연산 기호 입력받기
            System.out.print("사칙연산을 입력하세요(+, -, *, /): ");
            char charbox = sc.nextLine().charAt(0);

            int result = 0;

            switch (charbox) {
                case '+' -> result = num1 + num2;
                case '-' -> result = num1 - num2;
                case '*' -> result = num1 * num2;
                case '/' -> {
                    // 연산 오류 (0으로 나눌 수 없음)
                    if (num2 == 0) {
                        System.out.println("0으로 나눌 수 없습니다");
                        return;
                    }
                    result = num1 / num2;
                }

                    // 입력한 값이 연산기호가 아닌 경우
                default -> {
                    System.out.println("잘못 입력하였습니다. 다시 입력해주세요.");
                    return;
                    }
            }

 

1회차 때는 계산식을 연산하고 진행하였으나 2회차 때 result = num + num 방식으로 보다 쉽게 바꿈

 

3. 반복문 사용

  • 1회차
        int i = 1;
        while (i < 2) {
        .
        .
        .
 	}
    
            {
            System.out.print("더 진행하시겠습니까? (exit 입력 시 종료): ");
            String exit =  sc.nextLine();

            if (exit.equals("exit"))
                 i = 2;

            }
  • 2회차
        // 반복문 사용
        while (!exit.equals("exit")) { // exit가 아닐 때 반복
        .
        .
           System.out.println("결과 ="+ result);
           System.out.println("종료를 원하면 exit 입력");
           exit = sc.nextLine();

 

튜터님의 피드백을 받고 while 조건을 더 직관적으로 변경 / exit가 적히면 종료, exit가 아니면 반복