主要是i++;continue;这部分理解不了啊

#include<stdio.h>

int main()
{
    int i=0,s=0;
    do
    {
    if(i%2)
    {
    i++;
    continue;
    }
    i++;
    s+=i;}
    while(i<7);
    printf("%d\n",s);
    return 0;
}

i为奇数的时候,i加1,continue使得程序跳过循环体中continue语句后面的部分(也就是跳过i++和s+=i这两句),继续执行下一次循环

img

执行过程如下:
i=0,i%2=0,if不成立,执行 i++,i变成1,s+=i= 0+1=1,i<7成立,继续下一次循环
i=1,i%2=1,if成立,i++,i变成2,continue跳过i++和s+=i这两句,i<7成立,继续执行
i=2,i%2=0,if不成立,执行 i++,i变成3,s+=i= 1+3=4,i<7成立,继续下一次循环
i=3,i%2=1,if成立,i++,i变成4,continue跳过i++和s+=i这两句,i<7成立,继续执行
i=4,i%2=0,if不成立,执行 i++,i变成5,s+=i= 4+5=9,i<7成立,继续下一次循环
i=5,i%2=1,if成立,i++,i变成6,continue跳过i++和s+=i这两句,i<7成立,继续执行
i=6,i%2=0,if不成立,执行 i++,i变成7,s+=i= 9+7=16,i<7不成立,结束循环
所以,s的值是16

i++是i的自增,continue是不执行在它下方的命令,进行下一次循环。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

continue就是跳过continue下方语句执行下个循环

img


这里是当i%2=0时(0 2 4 6)加1并累加到s,i%2=1则跳过