절차지향 calculator 프로그램을 객체지향프로그래밍으로 만들었다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// calculator(계산기)
int number1, number2, result = 0;
String operator;
while(true) {
// 1. 숫자입력
System.out.print("첫번째 숫자 >> ");
number1 = sc.nextInt();
// 2. 연산기호(+,-,*,/)
System.out.print("연산자(+, -, *, /) >> ");
operator = sc.next();
// 3. 숫자입력
System.out.print("두번째 숫자 >> ");
number2 = sc.nextInt();
// 4. 연산
if(operator.equals("+")) {
result = number1 + number2;
}
else if(operator.equals("-")) {
result = number1 - number2;
}
else if(operator.equals("*")) {
result = number1 * number2;
}
else if(operator.equals("/")) {
result = number1 / number2;
}
// 5. 결과출력
System.out.println(number1 + " " + operator + " " + number2 + " = " + result);
// 6. replay
System.out.print("다시 시작하시겠습니까?(y/n) = ");
String replay = sc.next();
if(replay.equals("y")) {
System.out.println("다시 시작합니다");
}else {
break;
}
}
}
public class Calculator {
//멤버변수 -> 자동으로 초기화 됨
int number1 = 0; //첫번째로 입력받을 변수
int number2 = 0; //두번째로 입력받을 변수
int result = 0; //계산된 결과
String operator = null; //연산기호
//함수 이름 : input
//목적 : user input(숫자, 연산기호)
public void input() {
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 숫자");
number1 = sc.nextInt();
System.out.println("연산자(+, -, *, /) =");
operator = sc.next();
System.out.print("두번째 숫자");
number2 = sc.nextInt();
}
//함수 이름 : process
//목적 : 연산기호(+ - * /) case문
public void process() {
switch(operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
}
}
//함수이름 : result
//목적 : 결과 출력
public void result() {
System.out.println(number1 + " " + operator + " " + number2 + " = " + result);
}
//함수 이름 : loop
//목적 : 위 함수들 모음 -> mainclass에 간결히 쓸 수 있음
public void loop() {
input();
process();
result();
}
}
//main class
import cal.Calculator; //module
public class MainClass {
public static void main(String[] args) {
//인스턴스 -> cal
Calculator cal = new Calculator();
/*
cal.input();
cal.process();
cal.result();
*/
cal.loop();
}
}