continue 语句的作用是跳过本次循环中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
注意:执行continue 语句并没有使整个循环终止。
在 while 和 do-while 循环中,continue 语句使得流程直接跳到循环控制条件的测试部分,然后决定循环是否继续进行。在 for 循环中,遇到 continue 后,跳过循环体中余下的语句,而去对 for 语句中的“表达式3”求值,然后进行“表达式2”的条件进行条件测试,最后根据“表达式2”的值来决定 for 循环是否执行。
在循环体内,不论 continue 是作为何种语句中的语句成分,都将按上述功能执行,这点与 break 有所不同。
下面进行 continue 演示
#include<stdio.h>
int main(){
int k = 0,s = 0, i;
for (i = 1;i<=5;i++)
{
s = s + i;
if (s>5){
printf("* * i = %d ,s = %d ,k = %d\n",i,s,k);
continue;
}
k = k + s;
printf("i = %d ,s = %d, k =%d\n",i,s,k);
}
return 0;
}
运行结果如下
程序运行时,当 i 为1和2时,由于条件表达式 s > 5 为假,不执行 if 语句,仅执行 k = k + s;执行第三次循环时,s 的值已是6了,这时表达式s>5的值为真,因此执行if语句的输出语句和continue语句,并跳过其后的k=k+s;接着执行for后面的i++,继续执行下一次循环。