본문 바로가기
코딩 테스트/[JAVA] 백준

[JAVA] 백준 5613번 계산기 프로그램 | BOJ 자바 bronze 3

by M개발자 2022. 3. 22.
반응형

계산기 프로그램

 

덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있는 계산기 프로그램을 만드시오.


예제 입출력

 

입력 출력
1
+
1
=
2
10
-
21
*
5
=
-55

 


코드

 

1. 변수 선언

boolean plug : 연산자와 피연산자를 순서대로 입력받는다. plug가 false면 연산자를 입력받고, true면 피연산자를 입력받는다.String op : 연산자를 저장하기 위한 변수int bNum : 입력받은 수와 계산할 숫자(누적 계산된 수)

 

2. 연산자가 "="가 아닐동안 반복하기 위한 do-while

while(true)에 if문으로 break를 주는 것과 동일한 작용을 한다.

 

3. plug가 true일 경우

plug가 true이면 피연산자를 입력받는다. 첫번째 피연산자는 bNum을 선언할 때 입력받았다.피연산자를 입력받았다면 계산할 부호가 정해져있으므로 해당 부호를 찾기 위해 if-elseif로 bNum에 입력받은 num을 계산하여 저장한다.

 

4. plug가 false일 경우 

plug가 false이면 op 변수에 연산자를 저장한다. 

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 연산자를 입력받을지 피연산자를 입력받을지 구별할 변수 
        boolean plug = false;
        // 연산자를 저장할 변수
        String op = "";
        // 최종 계산을 출력할 변수, 첫 피연산자는 미리 저장해둔다.
        int bNum = scanner.nextInt();
        
        // 연산자가 "="가 아닐동안 반복
        do {
            // plug가 true이면 피연산자를 입력받는다.
            if (plug) {
                // 피연산자 저장
                int num = scanner.nextInt();
                // bNum에 num 계산
                if (op.equals("+")) bNum += num;
                else if (op.equals("-")) bNum -= num;
                else if (op.equals("*")) bNum *= num;
                else if (op.equals("/")) bNum /= num;
                
            // plug가 false이면 연산자 저장
            } else op = scanner.next();
            plug = !plug;
        } while (!op.equals("="));
        System.out.println(bNum);
    }
}

 


 

 

5613번: 계산기 프로그램

입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출

www.acmicpc.net

 

반응형

댓글