在switch语句中,将case中的break替换为continue,用gcc编译时报错:error: continue statement not within a loop。在网上搜索了些答案,但没有满意的,大家来讨论下吧!
因为coninue只能用于循环语句中,例如 do 、while 、for等循环,switch 不是循环结构,所以能使用。
msdn 注释:
强制转移对最小封闭 do、for 或 while 循环的控制表达式的控制。
备注:
将不会执行当前迭代中的所有剩余语句。 确定循环的下一次迭代,如下所示:
在 do 或 while 循环中,下一个迭代首先会重新计算 do 或 while 语句的控制表达式。
在 for 循环中(使用语法 for(init-expr; cond-expr; loop-expr)),将执行 loop-expr 子句。 然后,重新计算 cond-expr 子句,并根据结果确定该循环结束还是进行另一个迭代。
下面的示例演示了如何使用 continue 语句跳过代码部分并启动循环的下一个迭代。
示例: