请看一个小程序:

来源:百度知道 编辑:UC知道 时间:2024/06/12 18:18:01
#include<iostream>
using namespace std;
int main ()
{
int num=0;
while(num<=2)
{
num++;
cout<<num<<endl;
}
return 0;
}
这个程序的运行结果是:1 2 3
可是num的定义是<=2呀???
为什么会出现3呢?
敬请帮忙!

当NUN=0时判断一次
走++ 输出NUM=1
当NUN=1时判断一次
走++ 输出NUM=2
当NUN=2时判断一次
走++ 输出NUM=3
循环结束

看过

因为num是先++再输出的
当num==2时,进入循环,num++后num等于3了,输出3,然后再循环因为3大于2跳出循环,循环终止
你想想num是从0开始的,为什么没有输出0,这是一个道理,因为num先加了1,再输出

条件确实是这样,可是后来NUM++了呀,再执行cout<<num<<endl时,不已经是3 了么

那是因为先执行了num++;你把这一句和cout<<num<<endl;换个位置就行了