C语言中continue的运用问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:07:03
有这样的程序:
#include<stdio.h>
main()
{
int i=0,s=0;
do
{if(i%2){i++;continue;}
i++;s+=i;
}while(i<7);
printf("%d\n"s)
}

上面的运行结果是16,这个16是怎么出来的??可以给我讲解一下这个程序

当i%2=0的时候,执行i++,s+=i
当i%2!=0的时候,i就加1然后继续括号里的(i%2)
于是:s+=1+3+5+7=16

continue就是跳出当前当次循环,越过i++;s+=i以后,继续下一个do

i=0进入循环,0能被2整除,则i++,continue表示跳过循环下面的语句
直接进入下一次循环,也就是说当i不能被2整除的时候就不会对s进行
操作。那么s=1+3+5+7=16,呵呵我学了一年的C,C++还是觉的挺容易的
多做做题会对你有帮助!

用F7或F8单步运行一下,你就很清楚了

i=0
0%2=0 为假 i++ i=1 s=s+i=0+1=1
1%2=1 执行{i++;continue;} i=2 continue 继续执行if
2%2=0 i=3 s=s+3=1+3=4
3%2=1 同上 i=4 continue
4%2=0 i=5 s=5+4=9
5%2=1 i=6
6%2=0 i=7 s=9+7=16

建议用hawkbati的方法,不然这类问题永远也不清楚