TIL - 계산기 Lv.2 -1

Jiyeong Kim·2025년 1월 6일

TIL

목록 보기
3/24

기타

*인텔리제이 스플릿 뷰로 보기(화면분할)

원하는 탭에서 우클릭하여 split 선택하면 된다.

계산기를 클래스를 이용하여 만들기

  • 필드영역, 생성자 영역을 따로 만들고 메인은 입력과 출력, 클래스에서 계산을 따로 할 수 있도록 분리한다.
package com.example.calculator;
import java.util.*;
//필드영역
public class Calculator2 {
    private int number1;
    private String Operation;
    private int number2;
    private boolean keepRunning;
    private List<String> records;
    //생성자 영역
    public Calculator2() {
        records = new ArrayList<>();
    }
  • 위의 코드가 완벽하다고는 생각하지 않는데, 일단 필드를 선언하고 필요한 유틸을 불러왔다.
  • 계산을 반복할 경우 앞선 계산 결과 기록이 남아있을 것이다. 이를 위해서 public Calaulator2() {} 안에 records = new ArrayList<>() 삽입
    public int calculate(int number1, String Operation, int number2) {
        /* 위 요구사항에 맞게 구현 */
        /* return 연산 결과 */

        int result = 0;

        switch (Operation) {
            case "+":
                result = number1 + number2;
                break;
            case "-":
                result = number1 - number2;
                break;
            case "*":
                result = number1 * number2;
                break;
            case "/":
                if (number2 != 0) {
                    result = number1 / number2;
                } else {
                    System.out.println("나눗셈 연산에서 분모(두번째 정수)에 0이 입력될 수 없습니다.");
                    break;
                }
            default:
                System.out.println("유효하지 않은 연산자입니다.");

    }
        return result;
}

아래는 계산기 1단계를 활용해서 함수를 채워주었다. 아직 저장과 출력을 구현하지 못했고, 강의를 다시들으면서 부족한 부분을 메꾸고있다.

Main

package com.example;

import com.example.calculator.Calculator2;

import java.util.Objects;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Calculator2 calculator = new Calculator2();
        Scanner sc = new Scanner(System.in);
        boolean keepRunning = true;
  • 필요한 유틸 불러오고 클래스를 사용할 수 있게 메인 메서드 작성
 while(keepRunning) {
            System.out.print("첫 번째 숫자를 입력하세요:");
            int number1 = sc.nextInt();

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

            System.out.print("두 번째 숫자를 입력하세요:");
            int number2 = sc.nextInt();

        /* 위 요구사항에 맞게 소스 코드 수정 */

            System.out.println("더 계산하시겠습니까? (exit 입력 시 종료)");
            String reply = sc.next();
            if (Objects.equals(reply, "exit")) {
                boolean keepRunning = false;
            }
            System.out.println("계산기를 종료합니다.");
            sc.close();
        }
  • keepRunning이 정의되지 않았음에 대한 오류가 뜬다. 추후에 보강해야한다.
profile
해봅시다

0개의 댓글