(Java) 계산기 프로그램 만들기 - Lv 1

Yong Lee·2025년 2월 26일

계산기

목록 보기
1/4

계산기


개요

이 프로젝트는 자바로 계산기 프로그램을 만드는 것입니다.
이 프로젝트는 level이 나뉘어져 있으며, level이 올라갈수록 백엔드 개발자스러운 코드로 변할 예정입니다.


Lv 1. 클래스 없이 기본적인 연산을 수행할 수 있는 계산기 만들기

  • 양의 정수(0 포함)를 입력받기

    • Scanner를 사용하여 양의 정수 2개(0 포함)를 전달 받을 수 있습니다.
    • 양의 정수는 각각 하나씩 전달 받습니다.
    • 양의 정수는 적합한 타입으로 선언한 변수에 저장합니다.
  • 사칙연산 기호(➕,➖,✖️,➗)를 입력받기

    • Scanner를 사용하여 사칙연산 기호를 전달 받을 수 있습니다.
    • 사칙연산 기호를 적합한 타입으로 선언한 변수에 저장합니다. (charAt(0))
  • 위에서 입력받은 양의 정수 2개와 사칙연산 기호를 사용하여 연산을 진행한 후 결과값을 출력하기

    • 키워드 : if switch
    • 사칙연산 기호에 맞는 연산자를 사용하여 연산을 진행합니다.
    • 입력받은 연산 기호를 구분하기 위해 제어문을 사용합니다. (예를 들면 if, switch)
    • 연산 오류가 발생할 경우 해당 오류에 대한 내용을 정제하여 출력합니다.
      • ex) “나눗셈 연산에서 분모(두번째 정수)에 0이 입력될 수 없습니다.“
  • 반복문을 사용하되, 반복의 종료를 알려주는 'q' 문자를 입력하기 전까지 무한으로 계산을 진행할 수 있도록 소스 코드를 수정하기

    • 키워드 : 무한으로 반복, 수정하기
    • 반복문을 사용합니다.

Code!

import java.util.Scanner;

// Lv 1. 클래스 없이 기본적인 연산을 수행할 수 있는 계산기 만들기
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double result = 0;
        char play = 'p';

        while (play != 'q' && play == 'p') {
            // end condition
            if(play == 'q') {
                System.out.println("계산기를 종료합니다.");
                break;
            }

            // input
            System.out.print("첫번째 숫자 입력: ");
            int num1 = scanner.nextInt();
            System.out.print("두번째 숫자 입력: ");
            int num2 = scanner.nextInt();
            System.out.print("사용할 사칙연산 기호: ");
            char operator = scanner.next().charAt(0);

            // find correct operator
            if (operator == '+') {
                result = num1 + num2;
            } else if (operator == '-') {
                result = num1 - num2;
            } else if (operator == '*') {
                result = num1 * num2;
            } else if (operator == '/') {
                if (num2 == 0) {
                    System.out.println("0으로 나눌 수 없습니다.");
                    continue;
                }
                result = (double) num1 / num2;
            } else {
                System.out.println("잘못된 기호입니다.");
            }

            // output
            System.out.println(result);

            // decide keep playing or end program
            System.out.println("프로그램 종료를 원하시면, q를 입력하고 엔터, ");
            System.out.println("다른 계산을 원하시면, p를 입력하고 엔터");
            play = scanner.next().charAt(0);
        }

    }
}

Trouble!

  • 코드를 다시 보면서 Do-While문을 쓰는게 더 자연스러웠을거란 생각을 했습니다.

Print!


깃헙에서 코드 보기

profile
오늘은 어떤 새로운 것이 나를 즐겁게 할까?

0개의 댓글