*인텔리제이 스플릿 뷰로 보기(화면분할)
원하는 탭에서 우클릭하여 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();
}