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
계속하려면 아무 키나 누르십시오 . . .
*/