C语言while语句

#include<stdio.h>
main()
{int num=0;
while (num<=3)
{++num;
printf("%d\n",++num);
}
}
谁能解释这程序的运行过程及结果吗?

我觉的这里while(key == 0);的作用是让程序停在这里,等待key != 0 满足后继续往下执行。
如果这里key对应外面的按键,并且key == 0 表示按键被按下,则外面的while(1) 循环是用来检测按键是否被按下,当检测到按键被按下,即if(key == 0)成立 ,执行while(key == 0); 空循环,在这里就应该是等待按钮松开,当按钮松开,key == 0 不再满足,就跳出循环往下执行。

如果没有这个空循环:
void main(){ P1=0xff; led=1; while(1) { if(key==0) { led=~led; delay(20); } }}那么当你一直按着按键的时候,if(key == 0)始终满足,会重复执行while(1)中的程序,导致led灯不停改变亮暗状态,直到你抬起按键。仔细看你修改的程序,也会出现相同的结果。

请采纳答案,支持我一下。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-23
#include<stdio.h> //包含库文件
int main()  //程序入口
{
    int num=0;  //初始化为0
    while (num<=3) //如果小于等于3
    {
        ++num;  //给num+1,相当于 num = num + 1
        printf("%d\n",++num); //打印num
    }
}

第2个回答  推荐于2016-07-06
main() // 这是主程序的入口,运行的时候从这里开始执行
{int num=0; // 定义了一个变量num
while (num<=3) // 当num的值小于等于3的时候,执行后面大括号里面的内容
{++num; // num的数值加1
printf("%d\n",++num); // 将num的值输出到屏幕上
}
}追问

能解释下为什么结果是2 4吗

追答

++num的意思是 num = num + 1

本来应该是应该输出1,2,3的。
但是由于printf("%d\n",++num); 这里又增加了一个++num

所以导致第一次执行++num时,num为1
在printf的时候又调用了一次,num变成了2
同理,再次执行++num的时候,变成3
但是printf的时候又调用了一次++num就变成了4

输入的时候就变成了2,4

本回答被提问者采纳
第3个回答  2014-08-23
输出应该是:
2
4
执行情况是:
第一轮循环:num先加1,再加1后输出,输出是2;
第二轮循环:输出4;
因为num大于3,结束循环。
第4个回答  2014-08-23
2
4
首先num=0
然后自增为1
输出时又自增为2输出
2<3
sum自增为3
输出时又自增为4输出
结束
本题考点为++i与i++的区别追问

请问能解释下num++的情况吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网