7일차 계산기

박현정·2022년 3월 24일
0

JAVA 독학

목록 보기
9/26

이때까지 배운 지식을 총망라하여, 계산기를 만들어보자.

(계산기 홀로 만들어보기)

String q = "1. 계산하기\n"
			+"2. 나가기";
	
	Scanner sc = new Scanner(System.in);
				System.out.println(q);
		int choice = sc.nextInt();
		while(true) {
		if(choice == 2) {
			System.out.println("종료");
			break;
			}
			else {
				System.out.println("숫자와 계산부호를 차례로 입력해주세요.");
				int num1 = Integer.parseInt(sc.next());
				String oper = sc.next();
				int num2 = Integer.parseInt(sc.next());
				switch(oper) {
								
				case "+" :
				System.out.println(num1+num2);
				break;
		
				case "-":
				System.out.println(num1-num2);
				break;
				
				case "*":
				System.out.println(num1*num2);
				break;
				
				case "/":
				System.out.println(num1%num2);
				break;
				
				default: 
				System.out.println("?");
		}
		}
}}}

(결과창)

** 일단 기본적인 계산기능까지 넣는데 성공하였지만, 아래 선생님의 예제와 비교해보면 디테일이 떨어진다.

(Teacher's 예제)

Scanner sc = new Scanner(System.in);
String menuMsg = "1.계산하기\n2.나가기";
int num1 = 0, num2 = 0;
int choice = 0;
String oper = "";
String result = "";

while(true) {
System.out.println(menuMsg);
choice = sc.nextInt();
if (choice==2) break;
if (choice !=1) continue;
//잘못입력했을 때 continue는 다음 반복으로 넘어가주는 애 즉 첫줄로 넘어감

num1 = Integer.parseInt(sc.next());
oper = sc.next();
num2 = Integer.parseInt(sc.next());

//next 로 받음 왜냐하면 1 + 1 동시에 입력 받을때는 공백을 구분을 하는 next로 써줘야함
//result라는 공간안에 결과를 담아둠 그이후로 마지막에 print함 -> 실무

switch(oper) {
case "+": 
	result = ""+(num1+num2);
	break;
case "-": 
	result = ""+(num1-num2);
	break;
case "*": 
	result = ""+(num1*num2);
	break;
case "/": 
	if(num2 !=0) {
		result = ""+(num1/num2);
	}else {
		result = "0으로 나눌 수 없습니다.";
	//else가 아니라면 아직 if랑 else구문이 헷갈림
	}
	break;
	//분모가 0일때
	default: //연산자말고 다른 걸 넣었을때는
		result ="사칙연산 외의 연산자는 사용할 수 없습니다.";
}
System.out.println(result);
}}}

**result 같이 실무에서 쓰이는 깔끔함과 유저를 생각하여, 나누기할 때나, 잘못 숫자를 입력하였을 때 경우의 수도 넣어줌. 이런 디테일함이 차이가 난다.

profile
Gut Beginer

0개의 댓글