C语言中while 空语句的作用?
voidmain(){P1=0xff;led=1;while(1){if(key==0){while(key==0);led=~led;delay(20);}}}whil...
void main()
{
P1=0xff;
led=1;
while(1)
{
if(key==0)
{
while(key==0);
led=~led;
delay(20);
}
}
}
while语句为什么用空语句,空语句的作用是什么呀,如果改成
if(key==0)
{
while(key==0)
{
led=~led;
delay(20);
}
}为什么不可以呀 展开
{
P1=0xff;
led=1;
while(1)
{
if(key==0)
{
while(key==0);
led=~led;
delay(20);
}
}
}
while语句为什么用空语句,空语句的作用是什么呀,如果改成
if(key==0)
{
while(key==0)
{
led=~led;
delay(20);
}
}为什么不可以呀 展开
8个回答
展开全部
我觉的这里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灯不停改变亮暗状态,直到你抬起按键。仔细看你修改的程序,也会出现相同的结果。
展开全部
这是个控制单片机led灯的程序吧,”while(key==0);“的作用是等待按键抬起,因为如果按键一直保持按的状态的话程序会停在这个死循环上,当按键抬起后再修改led灯的状态。你后来修改的代码是不正确的,因为当按键一直保持按的状态时你的led在不停的切换亮暗状态。如果没看明白请追问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个C51编程文件吧,
while(1)
{
。。。。。
}
这个是一个死循环结构,也就是说程序会一直运行
f(key==0)
{
while(key==0)
{
led=~led;
delay(20);
}
}
这段语句
f(key==0) //判断是否有按键按下
{
while(key==0) //如果按键一直按下LED每隔20个delay闪一次
{
led=~led;
delay(20);
} //按键释放继续while(1)里面的循环,判断按键是否按下
}
while(1)
{
。。。。。
}
这个是一个死循环结构,也就是说程序会一直运行
f(key==0)
{
while(key==0)
{
led=~led;
delay(20);
}
}
这段语句
f(key==0) //判断是否有按键按下
{
while(key==0) //如果按键一直按下LED每隔20个delay闪一次
{
led=~led;
delay(20);
} //按键释放继续while(1)里面的循环,判断按键是否按下
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(key==0);
这一句的作用是等待按键释放,你如果把它去掉的话就有可能造成按一次键多次响应了。
这一句的作用是等待按键释放,你如果把它去掉的话就有可能造成按一次键多次响应了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-15 · 知道合伙人软件行家
关注
展开全部
while(1)
{
}
花括号里面的才是 while语句的 语句体, 1即是永为真,会一直执行 花括号里面的语句。
{
}
花括号里面的才是 while语句的 语句体, 1即是永为真,会一直执行 花括号里面的语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询