Java

Switch 문 & 삼항연산자

에어팟맥스 2022. 6. 10. 00:08

=== 1. switch 문 ===

switch() 의 기본적인 형태는 아래의 모습과 같다.

        switch (key) {
        case value:

        break;

        default:
        break;
        }

key 를 지정하고 그 값이 value와 같거나 dafault 와 같다면 break를 통해 switch문을 탈출한다.

 

switch() 괄호 속에는 byte, short, int, char, string 타입은 가능하다.
switch() 괄호 속에는 long, float, double 타입, String을 제외한 객체타입은 불가하다.

 

switch 문을 사용하여 두 정수를 입력받아 사칙연산을 선택하여 수행하는 기능을 구현하고자 한다.

[예시]

/*
  첫번째 정수 입력 => 10
  두번째 정수 입력 => 4
  사칙연산자 선택(+ - * /) => $$
  
  10+4=14
  10-4=6
  10*4=40
  10/4=2.5
*/

package my.day06.d.Switch;

import java.util.Scanner;

public class Main_switch {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		try {
		
			System.out.print("첫번째 정수 입력 => ");
			int num1 = Integer.parseInt(sc.nextLine());
			
			System.out.print("두번째 정수 입력 => ");
			int num2 = Integer.parseInt(sc.nextLine());
			
			System.out.print("사칙연산자 선택(+ - * /) => ");
			String operator = sc.nextLine();
			
			String result = "";
			
			// === switch 문 === //
			
			switch (operator) { // switch() 괄호 속에는 byte, short, int, char, string 타입만 가능하다.
			case "+": // operator 값이 "+"와 같다면
				result = String.valueOf(num1 + num2);
				break; // switch(operator){} 부분을 빠져나가라는 뜻
				
			case "-": // operator 값이 "-"와 같다면
				result = String.valueOf(num1 - num2);
				break;
				
			case "*": // operator 값이 "*"와 같다면
				result = String.valueOf(num1 * num2);
				break;
				
			case "/": // operator 값이 "/"와 같다면
				if(num2 != 0)
					result = String.valueOf( (double)num1 / num2 );
				else
					result = "분모에는 0 이 올 수 없습니다.";
				break;

			default: // operator 값이 "+" "-" "*" "/" 가 아닌 기타 나머지 값이라면
				System.out.println(">>> 사칙연산자(+ - * /)만 선택하세요!! <<<");
			//	break;
				
			/*
				sc.close();
				return; // main() 메소드 안에서 return; 을 만나면 프로그램을 종료하라는 뜻이다.
			*/
				// 또는
				System.exit(0); // 프로그램을 종료하라는 뜻이다. 0: 정상종료/ 0이외: 비정상종료
				
				
				
			} // end of switch
            
 		} catch(NumberFormatException e) {
			System.out.println(">>> 정수만 입력하세요!! <<<");
		} // end of catch
		
		sc.close();

	} // end of void main(String[] args)

} // end of public class Main_switch

 

아직 반복문을 학습하지 않은 상태라 완벽하게 기능을 수행하지는 못함.

 

 

=== 2. 삼항연산자 ===

 

변수선언 = (조건식)?값1:값2;
   
   변수를 선언하고 나서 값을 부여하고자 할 때 사용되어지는데
   조건식이 참이라면 변수에 값1을, 거짓이라면 값2를 대입한다.

 

			result = ( "/".equals(operator) && num2 == 0 )? result :  num1 + operator + num2 + "=" + result;
		
			System.out.println(result);
			/*
			  10+4=14
			  10-4=6
			  10*4=40
			  10/4=2.5
			*/