프로그래밍을 하다보면,
분기문이나 반복문들 필수적으로 사용하게 된다. 그리고, 무엇보다 반복적인 비교문의 사용은 어쩌면, 개발자로 하여금 피곤함을 느끼게
하는 대목이기도 하다. 사지선다와 같이 입력해야 할 것이 정해져 있다면... 조금은 그 수고를 덜 수 있다.
다중 if
else.
if 문을 사용할때는 그 결과같의 범위를 정해주게 된다. 가령 점수를 비교한다고 하면, 100 ~ 90 점 사이는 'A', 89 ~
80 점은 'B', 79 ~ 70 점은 'C' 와 같은 식이다. 이것은 정확한 결과값을 필요로 하지 않을때 매우 유용하게 사용할
수 있는 방법이다.
사지선다,
오지선다.
하지만, 1 ~ 4번까지의 예를 들어주고, 그중에서 정해진 하나를 선택해야 한다면 if else 문의 활용은 왠지 낭비적인 문법이
될 수가 있다. 이럴땐 switch, case 문을 사용하여 좀더 효율적인 프로그래밍을 할 수 있다. case 문은 정해진
하나의 정수형을 받으며, 그것에 대한 비교만을 할 수 있게 되어 있다. 주어진 값이 '1' 일때, '2'일때, 아니면, 'a',
'b', '+', '-' 와 같은 기호들도 가능하다. 정수형, 문자형으로만 가능하다면!
switch
case 사용하기.
'1' ~ '4' 의 예중에서 하나만을 선택해야 하는 것을 if else 로 표현하면...
int a = 2;
if( a == 1) System.out.println("1 입니다");
else if( a == 2) System.out.println("2 입니다");
else if( a == 3) System.out.println("3 입니다");
else if( a == 4) System.out.println("4 입니다");
else System.out.println("잘못된 숫자입니다.");
그렇게 복잡하진 않지만, switch, case 문을 사용하는 것이 조금은 더 현명한 선택이라고 할 수 있다. 입력받는 수가
정확한 정수형이라면!
int a = 2;
switch (a)
case 1 :
System.out.println("1 입니다.");
break;
case 2 :
System.out.println("2 입니다.");
break;
case 3 :
System.out.println("3 입니다.");
break;
case 4 :
System.out.println("4 입니다.");
break;
default :
System.out.println("잘못된 숫자입니다.");
break;
case 부분에는 항상 break 문이 따라오게 되어있는데, 만일 이부분을 포함하지 않는다면, 조건이 만족하는 부분 이후의 모든
것들이 실행될 것이다. 위에서 모든 break 문을 제외하면 2, 3, 4 그리고 그 외의 모든 경우의 결과가 함께 출력될
것이다.
switch,
case 문을 사용할 때의 주의할점.
switch(a) 에서 a 대신에 들어갈 수 있는 것은 정수형의 데이터 이거나, char 형의 데이터 이다. 만일 'a' 의 값이
논리형이거나, 그 외의 다른 값이라면 프로그램은 오류를 일으키게 될 것이다. case 문에서는 단 하나의 값만을 사용할 수
있다. 또한 중괄호를 사용하지 않고 실행문들을 표현한다는 것이 if 비교문과의 차이점이라고 할 수 있다.
댓글을 달아 주세요