TIL
[계산기 만들기] 계산기를 만들기 2일차
oceanflow
2025. 1. 6. 23:52
import java.util.LinkedList;
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Calculator cal = new Calculator();
boolean reVal = true;
int result = 0;
while(reVal) {
System.out.print("계산할 첫번째 숫자를 입력하세요! : ");
int a = scan.nextInt();
System.out.print("계산할 두번째 숫자를 입력하세요! : ");
int b = scan.nextInt();
System.out.print("사칙연산 기호를 입력하세요! : ");
String c = scan.next();
char allSym = c.charAt(0);
cal.Calculate(a, b, allSym);
LinkedList<Integer> results = cal.getResultData();
if(results.size() > 6)
cal.setRemoveFirstResult();
System.out.println("결과 : " + results.getLast());
System.out.println("========================");
System.out.println("전체 계산 기록: " + results);
System.out.println();
System.out.println("더 계산하시겠습니까? (exit 입력 시 종료) : ");
String rework = scan.next();
if(rework.equals("exit")) {
reVal = false;
}
}
}
}
import java.util.ArrayList;
import java.util.LinkedList;
public class Calculator {
int a; // 값 1
int b; // 값 2
char sym; // 연산 기호
private LinkedList<Integer> resultData = new LinkedList<Integer>();
public LinkedList<Integer> getResultData() {
return resultData;
}
public void setRemoveFirstResult() {
LinkedList<Integer> newList = new LinkedList<>(resultData);
newList.remove(0);
this.resultData = newList;
}
public void Calculate(int valA, int valB, char allSym) {
a = valA;
b = valB;
sym = allSym;
int result = 0;
switch (allSym) {
case '*':
result = a * b;
break;
case '/':
result = a / b;
break;
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
default:
System.out.println("기호를 잘 못 입력했습니다!!! 다시 입력하세요!!!");
break;
}
resultData.add(result);
}
}
오늘은 첫날 했던 계산기를 연산 결과를 저장하고 결과값을 반환 하는 메서드와 컬렉션 타입 필드를 구현 하였고
캡슐화를 진행하였다.