switch(N)
{
        case N1:
                ~
                break;
        case N2:
                ~
                break;
.
.
.
        case Nn:
                ~
                break;
        default:
                ~
}

흐름이 switch에 도달하면 N의 값과 같은 Ni의 값을 찾는다. (i = 1, 2, ... , n)
(단, Ni는 상수이다.)
그리고 흐름은 'case Ni:' 의 바로 뒤의 위치로 간다.
그러다가 다음 case문인 'caseN(i+1):' 을 만나면 그 바로 뒤로 간다.
하지만 'break'를 만나면 switch(){} 의 바로 다음 위치로 탈출한다.

모든 case에 해당되지 않는 경우 default로 이동한다. 하지만 default 역시 break가 내장되어 있는 것은 아니다. 그러나 마지막에 위치한다면 break문은 필요하지 않다.

대부분 switch/case문을 어느 하나의 경우만을 실행하는 데 쓴다. 그게 일반적이다. 하지만 어떻게 다르게 이용해볼 수도 있을 것이다.

참고/ case, default과 같은 것과 그에 해당하는 실행코드 부분 합쳐 블럭이라고 한다...(?)
Posted by 망고스파게티 :