这个C++超级小程序问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:24:40
俺是超级菜鸟,这个程序我怎么算都是17,可编译就显示是16,怎么回事啊

#include <iostream.h>
void main(){
int i=0,s=0;
do {
if (i%2) {i++;continue;}
i++;
s+=i;
}while(i<7);
cout << s <<endl;
}

我们来看一下:
#include <iostream.h>
void main(){
int i=0,s=0; //现在i是0
第一次执行do循环体
if (i%2) {i++;continue;} //第一次,i=1;第二次,s=1,i=2;第三次i=3;第四次s=4;i=4,第六次s=9;i=6,第七次的时候s=16;i=7
i++;
s+=i;
}while(i<7);
cout << s <<endl; //当然s=16
}

不论条件满足与否
do 循环都会先执行一遍。

是16 啊
if中的i=0,2,4,6的时候才会进行下面的计算

这时计算s对应的i是1,3,5,7
加起来是16 啊

p0op