카테고리 없음

[TIL] 자바로 기본 계산기 만들기

mooncommit 2026. 3. 20. 22:09

오늘은 과제 Step1. 자바로 간단한 사칙연산 계산기를 만들었다.
튜터님 말씀을 따라 단순히 코드부터 바로 짜기보다, 먼저 프로그램의 흐름을 플로우차트로 정리한 뒤
그걸 바탕으로 코드를 구현했다.


🕶️ Step 1. 문제 해석 및 프로그램 흐름 설계

먼저 “사용자에게 숫자 2개와 사칙연산 기호를 입력받아 계산한 뒤,
exit 입력 시 종료하는 프로그램을 만든다”는 목표를 세웠다.

그 과정을 draw.io에서 플로우차트로 만들었다.

계산기 프로그램 플로우차트


💻 Step 2. 코드 구현

플로우차트를 기준으로 Scanner, if, while, continue, break를 이용해 기능을 하나씩 구현했다.

package calculator;

import java.util.Scanner;

public class Main {
    static void main() {
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.print("첫 번째 양의 정수를 입력해보세요 : ");
            int number1 = scanner.nextInt();
            if (number1 < 0) {
                System.out.println("양의 정수를 입력하세요");
                continue;
            }

            System.out.print("두 번째 양의 정수를 입력해보세요 : ");
            int number2 = scanner.nextInt();
            if (number2 < 0) {
                System.out.println("양의 정수를 입력하세요");
                continue;
            }

            System.out.print("사칙연산 기호를 입력하세요 : ");
            char operator = scanner.next().charAt(0);

            if (number2 == 0 && operator == '/') {
                System.out.println("0으로 나눌 수 없습니다.");
                continue;
            }

            int result;

            if (operator == '+') {
                result = number1 + number2;
            } else if (operator == '-') {
                result = number1 - number2;
            } else if (operator == '*') {
                result = number1 * number2;
            } else if (operator == '/') {
                result = number1 / number2;
            } else {
                System.out.println("잘못 입력했습니다.");
                continue;
            }

            System.out.println("결과: " + result);

            scanner.nextLine(); 
            System.out.println("exit를 입력하면 프로그램을 종료합니다.");
            System.out.print("계속 진행하시려면 아무거나 입력해주세요: ");
            String exit = scanner.nextLine();

            if (exit.equals("exit")) {
                System.out.println("프로그램을 종료합니다.");
                break;
            }
        }
    }
}

 

⭐️ 실행 결과

여러 상황 적용


✅ Step 3. 학습 포인트

 

  • 입력 처리 (Scanner)
    • nextInt()로 정수 입력, nextLine()으로 문자열 입력 받기.
    • nextInt() 후에는 줄바꿈 문자 때문에 nextLine()으로 한 번 비워주는 게 필요했다.
  • 조건문과 예외 처리
    • 음수 입력 시 continue로 반복문 처음으로 돌아간다.
    • 나눗셈에서 분모가 0일 경우 오류 메시지 출력.
  • 반복 제어
    • while (true)로 무한 반복 구조.
    • "exit" 입력 시 break로 반복 종료.

😅 Step 4. 처음 배울 때 어려웠던 점

  • Scanner 입력이 스킵되는 현상이 왜 생기는지 한참 찾았다.
    (→ nextInt()와 nextLine() 혼용 시 줄바꿈 문자가 남는 문제 때문이었음)
  • continue를 썼을 때 코드가 어디로 “점프”하는지 감이 안 잡혔다.
    콘솔 출력으로 단계별로 확인하며 이해했다.
  • 처음엔 모든 게 복잡해 보였지만,
    플로우차트를 그려보니까 “코드의 흐름”이 한눈에 들어와서 훨씬 이해가 쉬웠다.

exit 입력 시 종료

 


 

느낀 점

이번 실습에서는 프로그램의 전체 흐름을 직접 설계하고,
그 설계를 코드로 옮기는 과정을 처음으로 완성했다.
이제 조금씩 코드의 흐름과 작성 방식에 대한 이해가 생기는 느낌이다. 😎

튜터님께 많은 도움을 받았다.
처음 과제를 봤을 땐 솔직히 겁이 났지만,
튜터님의 설명 덕분에 점점 문제를 스스로 해결할 수 있었다는 점이 정말 감사했다.

 

다음 실습(STEP2)에서는 튜터님의 도움 없이 직접 문제를 해결해가며
메서드와 클래스를 활용한 구조화된 계산기를 만들어볼 예정이다.