일단 switch문의 블록 안으로 들어가고 나면 break를 만나거나 블록이 끝날 때까지 계속 실행된다. 이 코드에는 break문이 하나도 없기 때문에 블록 안에 있는 puts가 모두 실행된다. 가령 count 값이 3이라면 다음과 같이 세 줄에 걸쳐진 삼각형 모양이 출력된다.
터미널
0 +++
1 ++
2 +
switch는 if-else보다 구조가 좀 더 유연하지만 다음과 같은 제약 사항이 있다.
TAKEAWAY 3.5 case 값은 반드시 정수 타입의 상수 표현식으로 지정한다.
구체적으로 어떤 표현식을 사용할 수 있는지는 5.6.2절에서 자세히 설명한다. 지금은 일단 예제 코드에 나온 4, 3, 2, 1, 0처럼 소스 코드에서 직접 지정한 고정값이어야 한다는 점만 기억하자. 특히 count와 같은 변수는 switch 키워드 옆에만 적을 수 있고, case에서는 사용할 수 없다.
switch문은 유연성이 상당히 높지만 에러가 발생하기 쉽다는 단점도 있다. 특히 변수 정의를 깜박 잊고 지나치기 쉽다.