Scanner 클래스를 이용해 값을 입력받고 계산 결과를 출력해주는 프로그램을 만들어보자.
Scanner sc = new Scanner(System.in);
int num[] = new int[2];
System.out.print("첫번째 수 입력 : );
num[0] = sc.nextInt();
System.out.print("연산기호 입력 : );
String op = sc.next();
System.out.print("두번째 수 입력 : );
num[1] = sc.nextInt();
System.out.print("결과: ");
배열을 이용해 보기 위해 변수2개에 값을 입력받지 않고 길이가 2인 배열을 선언해 각 인덱스에 저장해줬다.
이제 조건문을 이용해 유저가 입력한 연산 기호대로 계산한 뒤 출력해주면 된다.
switch (op) {
case "*":
System.out.println(num[0] * num[1]);
break;
case "/":
System.out.println(num[0] / num[1]);
break;
case "+":
System.out.println(num[0] + num[1]);
break;
case "-":
System.out.println(num[0] - num[1]);
break;
default:
System.out.println("다시 입력해주세요");
}
switch문을 이용해서 op에 입력된 값에 따라 실행될 코드를 처리했다.
첫번째 수 입력 :50
연산기호 입력 :/
두번째 수 입력 :5
10
Process finished with exit code 0
값이 정상적으로 출력되긴 하지만 한번 실행되고 프로그램이 종료되기 때문에
do-while 문으로 코드를 감싸준 후에 계산이 끝나고 종료할건지 물어보는 코드를 추가했다.
do {
System.out.print("첫번째 수 입력 : ");
num[0] = sc.nextInt();
System.out.print("연산기호 입력 : ");
String op = sc.next();
System.out.print("두번째 수 입력 : ");
num[1] = sc.nextInt();
System.out.print("결과 : ");
switch (op) {
case "*":
System.out.println(num[0] * num[1]);
break;
case "/":
if (num[1] > 0) {
System.out.println(num[0] / num[1]);
}
break;
case "+":
System.out.println(num[0] + num[1]);
break;
case "-":
System.out.println(num[0] - num[1]);
break;
default:
System.out.println("다시 입력해주세요");
}
System.out.print("종료하시겠습니까? y/n");
exit = sc.next();
}while(!exit.equals("y"));
첫번째 수 입력 : 120
연산기호 입력 : +
두번째 수 입력 : 40
결과 : 160
종료 하시겠습니까? y/n : n
첫번째 수 입력 : 80
연산기호 입력 : *
두번째 수 입력 : 50
결과 : 4000
종료 하시겠습니까? y/n : y
Process finished with exit code 0
정상적으로 작동된다.