下面程序中 if(s1!=key1),key1=s1;该怎么理解,为什么缺少其中的一个,按键就不能按一下加1
答案:1 悬赏:60 手机版
解决时间 2021-04-07 02:04
- 提问者网友:沦陷
- 2021-04-06 06:54
下面程序中 if(s1!=key1),key1=s1;该怎么理解,为什么缺少其中的一个,按键就不能按一下加1
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-04-06 07:56
s1!=key1
这个是判断s1和key1是否不相等,不相等的话,为真;相等,则为假
key1=s1
这个是直接赋值,将s1的值赋给key1,如果s1的值不为0,那么整个表达式的的值恒为真,就没有判断的意义了追问你看我这样理解对不对
当按键按下时,s1为0,而key1为1,所以为真,然后执行下面的语句,当执行key1=s1时,将s1的值赋给key1,然后再去执行if(s1!=key1)进行判断表达式是否为真。追答你这个按键消抖写的就有问题
if(s1!=key1)
{
delay(10);//延时10 ms
if(s1==0)//这个判断根本就没有意义
{
day++;
}
key1=s1;
}应该是
if(!key1)
{
delay(10);//延时10 ms
if(!key1)
{
day++;
}
while(!key1);
delay(10);//延时10 ms
while(!key1);
}
这个是判断s1和key1是否不相等,不相等的话,为真;相等,则为假
key1=s1
这个是直接赋值,将s1的值赋给key1,如果s1的值不为0,那么整个表达式的的值恒为真,就没有判断的意义了追问你看我这样理解对不对
当按键按下时,s1为0,而key1为1,所以为真,然后执行下面的语句,当执行key1=s1时,将s1的值赋给key1,然后再去执行if(s1!=key1)进行判断表达式是否为真。追答你这个按键消抖写的就有问题
if(s1!=key1)
{
delay(10);//延时10 ms
if(s1==0)//这个判断根本就没有意义
{
day++;
}
key1=s1;
}应该是
if(!key1)
{
delay(10);//延时10 ms
if(!key1)
{
day++;
}
while(!key1);
delay(10);//延时10 ms
while(!key1);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯