Ant*_*gen 4 c break switch-statement labeled-statements
与Java中的break语句可以被标记或未标记的情况一样,C语言中是否存在等效的语句或实现相同过程的语句?
不,没有像Java这样的带标签的中断语句。但是,您可以使用goto-statement实现类似的效果。只需在您实际要退出的循环之后立即声明标签,然后使用gotoJava中本应使用标记中断的位置即可:
int main() {
for (int i=0; i<100; i++) {
switch(i) {
case 0: printf("just started\n"); break;
case 10: printf("reached 10\n"); break;
case 20: printf("reached 20; exiting loop.\n"); goto afterForLoop;
case 30: printf("Will never be reached."); break;
}
}
afterForLoop:
printf("first statement after for-loop.");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
just started
reached 10
reached 20; exiting loop.
first statement after for-loop.
Run Code Online (Sandbox Code Playgroud)
请注意,自Dijkstras著名论文《考虑到声明》以来,有害的计算机科学家为禁止goto代码声明而进行了艰苦的努力,因为该声明通常比诸如if或的控制结构引入更多的复杂性while。因此,请注意您的操作并明智地使用它(=很少)。