7일차 계산기
이때까지 배운 지식을 총망라하여, 계산기를 만들어보자.
(계산기 홀로 만들어보기)
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 같이 실무에서 쓰이는 깔끔함과 유저를 생각하여, 나누기할 때나, 잘못 숫자를 입력하였을 때 경우의 수도 넣어줌. 이런 디테일함이 차이가 난다.
Author And Source
이 문제에 관하여(7일차 계산기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jamiview/7일차-계산기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)