关于for循环中的continue,有一点问题不太明白。

关于for循环中的continue,有一点问题不太明白。

问题描述:

我在学习C语言网课的时候,说continue就是忽略这一次的循环所剩下的语句,直接进行下一轮循环。

img

而for循环中的(;;第三条语句)理论上在循环体最后执行,也就是算作循环剩下的语句,那么被continue跳出的话,循环条件不就不改变,变成死循环了咩?

img

continue只是跳出当前循环的后侧语句,stat3还是会执行的,可以理解为直接跳到stat3那个地方
有帮助望采纳

理论上在循环体最后执行,也就是算作循环剩下的语句===这个不对,这是只要下次循环就会做的,不管你是continue还是循环体执行完

{里面的内容才是循环体}

continue只是不执行continue后面的东西,for循环的第三个表达式仍然执行。
如果怕continue导致死循环,可以在continue前加一个条件来退出循环,比如:
if(continue执行的条件)
{
if(结束循环的条件) break;
continue;
}

如果运行了continue语句,则其后面的语句都不再执行了。但是最后条件i++还是会执行的。
你的代码相当于下面的功能:

int sum = 0;
for(int i = 0; i < 10; i++){
  if(i%2){
  } else {
   sum  += i;
  }
}
printf("%d\n",sum);