单片机C语言,问题一:while(语句){语句}与while(语句);语句 是什么区别,程序是

单片机C语言,问题一:while(语句){语句}与while(语句);语句 是什么区别,程序是怎么执行的。
问题二:检测k1为0,执行语句1,不为0,就继续检测,直到值为0为止。接着检测k2,为0时执行语句2,不为0时,继续检测,直到为0为止。只能执行完语句1后才能执行语句2,不能反着来。所有语句只运行一次,就结束,k1,k2第二次为0时程序不动作。求代码格式,谢了。

首先问题一:while(语句){语句}中小括号中的语句是判断真假,如果为真,则执行大括号中的语句,如果为假,则不执行下面的语句。while(语句);中的语句也是一个判断,当小括号中的语句表达式值不为0时,就一直判断,直到里面的表达式值为0时结束判断,去执行下一步的程序;
对于问题二:
while(!k1);
语句1;
while(!k2);
语句2;
对于这个程序段,只要是没有把它放在一个循环里面,也就是说让这个程序顺序执行一次就不再去执行这个段,就能实现你想要的功能。因为这几个语句是顺序执行的,所以在执行语句2之前,必须得经过语句1,语句2是不能在语句1之前执行的。同时也实现你需要的K1、K2不为0则检测,为0则不再检测,继续执行下面语句的要求。使用的是你询问的问题一中第二种循环方式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
问题1:就是基本的while用法,while(语句){}语句为真,执行括号里的.另一个while(语句);就是语句为真什么都不执行,不要把后边的语句跟前面的分号混了.
问题2:

if(bEntr) //初始化为1 让他进入一次
{
while(k1); //后面注意分号继续检测
语句1;
while(k2);
语句2;
bEntr=0; //删除进入标志
}本回答被提问者采纳
第2个回答  2014-12-15
while(语句);语句 实际上是分开的

while(语句);是一个语句,后面的 又是一个语句

问题二:
while(!k1){
语句1;
break;
}
while(!k2){
语句2;
break;
}追问

问题二不对,刚试了下

第3个回答  2014-12-15
while(语句);
不会执行想要执行的循环体的内容,而死循环
第4个回答  2014-12-15
jve
相似回答