오늘은 과제 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를 썼을 때 코드가 어디로 “점프”하는지 감이 안 잡혔다.
콘솔 출력으로 단계별로 확인하며 이해했다. - 처음엔 모든 게 복잡해 보였지만,
플로우차트를 그려보니까 “코드의 흐름”이 한눈에 들어와서 훨씬 이해가 쉬웠다.

느낀 점
이번 실습에서는 프로그램의 전체 흐름을 직접 설계하고,
그 설계를 코드로 옮기는 과정을 처음으로 완성했다.
이제 조금씩 코드의 흐름과 작성 방식에 대한 이해가 생기는 느낌이다. 😎
튜터님께 많은 도움을 받았다.
처음 과제를 봤을 땐 솔직히 겁이 났지만,
튜터님의 설명 덕분에 점점 문제를 스스로 해결할 수 있었다는 점이 정말 감사했다.
다음 실습(STEP2)에서는 튜터님의 도움 없이 직접 문제를 해결해가며
메서드와 클래스를 활용한 구조화된 계산기를 만들어볼 예정이다.