스위치 블록이 4 개인 경우 아래의 의사 코드가 있습니다. 네 번째 경우에는 다른 조건이 있고 조건이 충족 될 때 목록 크기를 1 줄이고 케이스 4로 돌아와 네 번째 경우의 시작 부분부터 실행해야합니다. 케이스 4에서 레이블을 만들려고했지만 컴파일 오류가 발생했습니다.스위치 케이스 내부에 라벨을 붙일 수 있습니까?
switch(choice) {
case 1: /* do operations */
break;
case 2: /* do operations */
break;
case 3: /* do operations */
break;
case 4:
mylabel:
if(condition1) {
}
else if(condition2) {
}
else {
break mylabel;
}
break;
default :
}
위의 코드는 컴파일 오류를 제공합니다. 그러나 나는 프로그램 흐름을 그렇게하기를 원한다. 그래서 아래 코드를 사용해 보았습니다.
switch(choice) {
case 1: /* do operations */
break;
case 2: /* do operations */
break;
case 3: /* do operations */
break;
case 4:
if(condition1) {
}
else if(condition2) {
}
else {
break case 4;
}
break;
default :
}
위 코드는 여전히 컴파일 문제에 직면하고 있습니다. 같은 목표를 달성하기위한 대안이 있습니까? 여기에서 나는 똑 같은 사례 진술의 시작 부분으로 되돌아 가야한다. 그러므로 그것은 다릅니다.
'do {...} while (cond)'루프에'case 4' 코드를 래핑하면됩니다. – AJNeufeld