JAVA/자바 기본 프로그래밍
Test034 조건문 if ~ else if ~ else 문(4)
ready J
2020. 9. 2. 21:32
※ 사용자로부터 임의의 두 정수와 연산자를 입력받아 해당 연산자의 연산 처리 결과를 출력하는 프로그램을 구현한다.
단, if 조건문을 활용하여 처리할 수 있도록 하며, 연산 결과는 편의상 정수형으로 처리될 수 있도록 한다.
실행 예)
첫 번째 정수 입력 : 10
두 번째 정수 입력 : 14
연산자 입력[+ - * /] : +
>> 10 + 14 = 24
계속하려면 아무 키나 누르세요...
방법 ①
char형 변수에 입력을 받아 문자를 비교하여 연산을 수행
int a,b; // 첫 번째 변수, 두 번째 변수 char op; System.out.print("첫 번째 정수 입력 : "); a = Integer.parseInt(br.readLine()); System.out.print("두 번째 정수 입력 : "); b = Integer.parseInt(br.readLine()); // Integer.parseInt() // "1234" → Integer.parseInt("1234"); → 1234 // "abcd" → Integer.parseInt("abcd"); → (X) System.out.print("연산자 입력[+ - * /] : "); //op = Integer.parseInt(br.readLine()); //op = br.readLine(); op = (char)System.in.read(); // 확인(테스트) System.out.println("op : " + op); if (op == '+') { System.out.printf("\n>> %d + %d = %d\n",a,b,(a+b)); } else if(op == '-') { System.out.printf("\n>> %d - %d = %d\n",a,b,(a-b)); } else if(op == '*') { System.out.printf("\n>> %d * %d = %d\n",a,b,(a*b)); } else if(op == '/') { System.out.printf("\n>> %d / %d = %d\n",a,b,(a/b)); } else System.out.printf("\n>> 입력 과정에 오류가 존재합니다.\n"); */
방법 ②
System.in.read()로 각 연산자 문자에 대한 아스키코드 값을 정수형으로 입력받아 비교하여 연산을 수행
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a,b,op; // 첫 번째 변수, 두 번째 변수, 그리고 연산자 System.out.print("첫 번째 정수 입력 :"); a = Integer.parseInt(br.readLine()); System.out.print("두 번째 정수 입력 :"); b = Integer.parseInt(br.readLine()); System.out.print("첫 번째 정수 입력 :"); op = System.in.read(); if(op == 43) System.out.printf("\n>> %d + %d = %d\n",a,b,(a+b)); else if(op == 45) System.out.printf("\n>> %d - %d = %d\n",a,b,(a-b)); else if(op == 42) System.out.printf("\n>> %d * %d = %d\n",a,b,(a*b)); else if(op == 47) System.out.printf("\n>> %d / %d = %d\n",a,b,(a/b)); else System.out.printf("\n>> 입력 과정에 오류가 존재합니다.\n");
방법 ③
int a, b, result = 0; char op; System.out.print("첫 번째 정수 입력 : "); a = Integer.parseInt(br.readLine()); System.out.print("두 번째 정수 입력 : "); b = Integer.parseInt(br.readLine()); System.out.print("연산자 입력[+ - / * /] : "); op = (char)System.in.read(); if(op == '+') result = a + b; else if(op == '-') result = a - b; else if(op == '*') result = a * b; else if (op == '/') result = a/b; System.out.printf("\n>> %d %c %d = %d \n",a,op,b,result);
실행 결과
// 실행 결과 /* 첫 번째 정수 입력 : 5 두 번째 정수 입력 : 6 연산자 입력[+ - / * /] : + >> 5 + 6 = 11 계속하려면 아무 키나 누르십시오 . . . 첫 번째 정수 입력 : 4 두 번째 정수 입력 : 12 연산자 입력[+ - / * /] : - >> 4 - 12 = -8 계속하려면 아무 키나 누르십시오 . . . 첫 번째 정수 입력 : 45 두 번째 정수 입력 : 25 연산자 입력[+ - / * /] : * >> 45 * 25 = 1125 계속하려면 아무 키나 누르십시오 . . . 첫 번째 정수 입력 : 12 두 번째 정수 입력 : 3 연산자 입력[+ - / * /] : / >> 12 / 3 = 4 계속하려면 아무 키나 누르십시오 . . . */