[TIL] JAVA로 계산기 만들기

김대욱·2023년 1월 19일
0

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

정상적으로 작동된다.

0개의 댓글