더북(TheBook)

일단 switch문의 블록 안으로 들어가고 나면 break를 만나거나 블록이 끝날 때까지 계속 실행된다. 이 코드에는 break문이 하나도 없기 때문에 블록 안에 있는 puts가 모두 실행된다. 가령 count 값이 3이라면 다음과 같이 세 줄에 걸쳐진 삼각형 모양이 출력된다.

 

터미널

 0 +++
 1 ++
 2 +

switchif-else보다 구조가 좀 더 유연하지만 다음과 같은 제약 사항이 있다.

TAKEAWAY 3.5 case 값은 반드시 정수 타입의 상수 표현식으로 지정한다.

구체적으로 어떤 표현식을 사용할 수 있는지는 5.6.2절에서 자세히 설명한다. 지금은 일단 예제 코드에 나온 4, 3, 2, 1, 0처럼 소스 코드에서 직접 지정한 고정값이어야 한다는 점만 기억하자. 특히 count와 같은 변수는 switch 키워드 옆에만 적을 수 있고, case에서는 사용할 수 없다.

switch문은 유연성이 상당히 높지만 에러가 발생하기 쉽다는 단점도 있다. 특히 변수 정의를 깜박 잊고 지나치기 쉽다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.