자바

Switch문

khon98 2020. 5. 22. 22:20

Switch~case

수식 혹은 변수의 값을 확인하여 수행될 부분으로 바로 이동해서 수행하는 제어문

 

switch(수식 혹은 변수){

case 값1 :

      코드

case 값2 :

      코드

default :

      코드

}

-----------------------------------------------------------------------------

이동이 된 후 코드를 수행하고 다음 조건에 있는 코드들 까지 모두 수행된다

 

int a = 2;

switch(a){

case 값1 :

      코드

case 값2 :

      코드

default :

      코드

}

-----------------------------------------------------------------------------

이동이 된 후 코드를 수행하고 다음 조건에 있는 코드를 수행하고 싶지 않을 때는 중간에 break를 써준다

 

int a = 2;

switch(a){

case 값1 :

      코드

      break;

case 값2 :

      코드

      break;

default :

      코드

}

-----------------------------------------------------------------------------

if문과 다른점

if ~ else if ~ else문 같은 경우 조건이 참인 부분을 만날 때까지 위에서부터 차례차례 비교하여 내려오기 때문에 참인 조건이 하단부에 있을 경우 작업량이 많아진다

switch ~ case 같은 경우에는 수식이나 변수의 값을 확인하여 값에 해당하는 부분으로 바로 이동하므로 비교하는데 까지 걸리는 작업량이 많지가 않다

switch ~ case는 수식이나 변수의 값이 정수일 경우에만 사용이 가능하다

 

효율적인 switch~case

int a = 2;                         int a = 2;

if(a == 1){                        switch(a){ 

코드                               case1 :

}else if (a == 2){                코드

코드                               break;

}else if (a == 3){                case2 :

코드                               코드

}                                    break;

                                     }

 

-----------------------------------------------------------------------------

import java.io.BufferedReader;

import java.io.InputStreamReader;

 

/*

 * 두 개의 숫자와 연산자 하나를 입력받고 연산 결과를 출력하는 프로그램

 */

public class switch project

 

    public static void main (String[ ] args) {

              // TODO Auto-generated method stub

              try{

                  // 두 개의 숫자와 연산자를 입력받는다.

                  InputStreamReader ir = new InputStreaReader(System.in);

                  BufferedReader br = new BufferedReader(ir);

 

                  System.out.print("1번째 숫자를 입력해주세요 : ");

                  String str1 = br.readLine( );

                  int number1 = Integer.parseInt(str1);

                 

                  System.out.print("2번째 숫자를 입력해주세요 : ");

                  String str2 = br.readLine( );

                  int number2 = Integer.parseInt(str2);

 

                  System.out.print("연산자를 입력해주세요 + - * / : ");

                  char op = (char)System.in.read( );

                  System.in.read( );

                  System.in.read( );

                  // 연산을 수행한다.

                  int result = 0;

 

                  switch(op){

                  case '+' :

                       result = number1 + number2;

                       break;

                  case '-' :

                       result = number1 - number2;

                       break;

                  case '*' :

                       result = number1 * number2;

                       break;

                  case '/' :

                       result = number1 / number2;

                       break;

                  }

                  // 결과를 출력한다.

                  //System.out.println(number1 + op +number2 + "=" + result);

                 System.out.printf("%d %c %d + %d", number1, op, number2, result);

             }catch(Exception e) { }

}

-----------------------------------------------------------------------------