main()
{
int i=2,j=0;
switch(3)
{
case 0: while(i)
{
case 1:j++;
case 2:j++;
case 3:j++;
i--;
}
}
}
//상수는이 코드를 실행하려고 다음 방법, 어떤 경우 상수에 일치되지
일정한 어떤 경우에 mathing되지 상수가 없기 때문에 스위치가 여기 작업을 진행하는 방법main()
{
int i=2,j=0;
switch(3)
{
case 0: while(i)
{
case 1:j++;
case 2:j++;
case 3:j++;
i--;
}
}
}
//상수는이 코드를 실행하려고 다음 방법, 어떤 경우 상수에 일치되지
일정한 어떤 경우에 mathing되지 상수가 없기 때문에 스위치가 여기 작업을 진행하는 방법case 레이블은 switch 문에서 사용되는 레이블 일뿐입니다. 일반 레이블의 경우 대소 문자 레이블을 대체하는 코드와 switch 문을 goto 문에 대한 상수 표현식으로 다시 쓸 수 있습니다. 실제로 사용되지 않았기 때문에 일부 레이블에 주석을 달았습니다.
#include <stdio.h>
int main(void)
{
int i = 2, j = 0;
goto L3;
/*L0:*/
while (i)
{
/*L1:*/ j++;
/*L2:*/ j++;
L3: j++;
i--;
}
printf("j = %d\n", j);
return 0;
}
프로그램 출력
j = 4
는 그래서 goto
문은 while 문 내부 (케이스) 라벨 L3
와 문에 제어를 전달한다. 그리고이 while 문은 두 번의 반복을 수행합니다. 주석을 달지 않은 다른 모든 레이블은 무시됩니다.
모스크바의 @ 블라드에게 감사드립니다. 그러나 goto 문을 사용하지 않으면 어떻게 될까요? –
@AKASHTOMAR 같은 일이 일어납니다. –
[The Definitive C Book Guide and List] (// stackoverflow.com/q/562303) –
이 코드는 어디서 났습니까? 귀하의 질문은 무엇인가? 아마도 [도움말 페이지] (http://stackoverflow.com/help), 특히 [여기에 관해서 내가 물을 수있는 주제는 무엇입니까?] (http://stackoverflow.com/help) 섹션을 읽는 것이 좋습니다. 도움말/on-topic) 및 [[어떤 유형의 질문을하지 않아야합니까?]] (http://stackoverflow.com/help/dont-ask)를 참조하십시오. 또한 [둘러보기] (http://stackoverflow.com/tour)와 [좋은 질문을하는 방법에 대해 읽어보십시오.] (http://stackoverflow.com/help/how-to-ask). –
나는 개봉 된 것을 이해하지 못하지만 개봉보다 더 많은 중괄호를 사용하고 있습니다. 또한 다른 블록 안에 케이스를 넣지 마십시오. 여기는 while 블록입니다. – Ordoshsen