在下面的代码中,if
语句会覆盖goto
条件,在后续版本中,if
中的switch
条件也会被覆盖。请解释为什么goto
和switch
正在执行此操作,并且有条件将条件放在goto
和switch
内。
int main()
{
int x=3;
goto LABEL;
if(x < 0) {
LABEL: printf("Label executed");
}
printf("\nEND MAIN");
return 0;
}
输出:
Label executed
END MAIN
int main()
{
int x = 2, y = -5;
switch(x)
{ if( y > 0)
{ case 1:
printf("case 1");
break;
case 2:
printf("\n case 2");
break;
}
case 3:
printf("\n case 3");
break;
default :
printf("\n Exit switch");
}
}
输出:
case 2
答案 0 :(得分:2)
goto跳到这一行:
LABEL: printf("Label executed");
忽略if语句及其条件,这解释了输出。
switch/case
只是一个花哨的goto
,因此switch(x)
与x = 2
将转到案例2,忽略if语句,它解释了输出。