JAVA
자바 기초 다지기(#12)
정숙씨의 쏠쏠한 코딩
2020. 10. 26. 23:55
-Swtich문-
if문은 어떤 조건의 판정 결과에 따라서 프로그램의 흐름을 두 가지로 분기하는 거였다면, Switch문은 한번에 여러개의 분기를 구성할수있다.
리스트 3-15 입력된 값의 따라서 가위바위보를 표시하는 프로그램
class FingerFlashing1{ public static void main(String args[]){ Scanner stdIn = new Scanner(System.in); System.out.println("손을 선택 하시오 (0-가위/1-바위/2-보)"); int hand = stdIn.nextInt(); If(hand ==0){ System.out.println("가위"); }else if (hand == 1){ System.out.println("바위"); }else if(hand == 2) System.out.println("보"); } } |
if문으로도 효과적으로 구현할수있으나 동일한 함수를 여러번 호출하기 때문에 작업간 에러가 발생할수도있다. 한번에 구현하기 위해 switch 문을 사용할경우 어떻게 변동되는지 확인하자.
-리스트 3-16 switch 문을 이용한 가위바위보 구현-
class FingerFlashing2{ public static void main(String args[]) { Scanner stdIn = new Scanner(System.in); System.out.println("손을 선택 하시오(0-가위/1-바위/2-보)"); int hand = stdIn.nextInt(); // 흐름의 입력을 선택 switch(hand){ // hand의 입력된 숫자값 반영 case 0: // 0이 입력될 경우 가위 출력 System.out.println("가위"); break; // 입력된 값을 출력 했을경우 다음 구문을 진행하지 않고 멈추게된다. case 1: // 1이 입력 될 경우 바위 출력 System.out.println("바위"); break; case 2: // 2가 입력 될 경우 보 출력 System.out.println("보"); break; } |
한가지 호출 함수를 이용하여 간결하게 구현이 가능하다, Switch문은 어떤 식을 평가한 값에 따라서 프로그램의 흐름을 복수로 분기시키는 문이다. 호출명 대로 스위치 같은 존재이다.
주석에 작성 된 것 처럼 입력 된 숫자로 프로그램의 이동에 대한 위치가 결정되는데 해당 부분을 레이블이라고 한다, (서로 다른 레이블이 같은 값을 받는것은 허용하지 않는다.)
-break 문-
switch 문에 지정된 레이블의 값이 출력 되었을경우 break 문을 만날경우 다음 값을 진행하지 않고 그자리에서 멈추게된다.
프로그램의 흐름이 멈춘다고 보면 된다.
-default 레이블-
Class SwitchBreak{ public static void main(String args[]){ Scanner stdIn = new Scanner(System.in) System.out.println("정수를 입력 하시오 : "); int n = stdIn.nextInt(); Swtich(n){ case 0 : System.out.println("A"); System.out.println("B"); break; case 1 : System.out.println("C"); System.out.println("D"); break; case 2 : // break문이 없기 때문에 자연스럽게 case 3 레이블 결과값이 나타난다. case 3: System.out.println("E"); break; default: //0123 을 입력하지 않고 다른 숫자값을 입력 했을때 default 레이블로 넘어간다. System.out.println("F"); break; } System.out.println(); } |
입력값이 case 레이블의 흐름에 맞지 않는 값이 나왔을경우 해당 값은 자연스럽게 switch 문에서는 default 레이블로 이동하게된다.
-선택문-
if와 switch문은 프로그램의 흐름을 분기시키는 공통점이 있기때문에 두문을 모아서 소스를 구현할경우 선택문 (selection statement)라고 한다.
-예시-
if (a==1) c = 10; else if( a==2) c =20; else if( a == 3) c = 30; else if (b == 4) c = 80; |
-왼쪽의 if문을 수정한 switch문- Switch (a) { case 1: c == 10; break; case 2: c == 20; break; case 3: c == 30; default if (b==4):c=80; // b의 값이 4일 경우에만 c = 80 을 대입한다. break; |