专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
新手请教:怎么实现按一个键使一个数码管在两种状态下...
2019-07-16 00:06
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
8937
14
1140
新手请教:
初学
单片机
C语言。有个小问题请教高手!
怎么实现按一个键使一个数码管在两种状态下来回切换呢?按一下显示一个状态,再按一下显示显示原来状态!
我定义了一个变量,不知道为什么程序运行后,能实现一次切换,切换后就不能要切换到原状态了!
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
ses66
1楼-- · 2019-07-17 14:44
while 语句的一般形式为:
while(表达式)语句
其中表达式是循环条件,语句为循环体。
while 语句的语义是:计算表达式的值,当值为真(非 0)时, 执行循环体语句。其执行
过程可用下图表示。
do-while 语句的一般形式为:
do
语句
while(表达式);
这个循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为
真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while 循环至少要执行一次
循环语句。其执行过程可用下图表示。
在 C 语言中,for 语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为:
for(表达式 1;表达式 2;表达式 3) 语句
它的执行过程如下:
1) 先求解表达式 1。
2) 求解表达式 2,若其值为真(非 0),则执行 for 语句中指定的内嵌语句,然后执行下面
第 3)步;若其值为假(0),则结束循环,转到第 5)步。
3) 求解表达式 3。
4) 转回上面第 2)步继续执行。
5) 循环结束,执行 for 语句下面的一个语句。
其执行过程可用下图表示。
for 语句最简单的应用形式也是最容易理解的形式如下:
for(循环变量赋初值;循环条件;循环变量增量) 语句
循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个
关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后
按什么方式变化。这三个部分之间用“;”分开。
例如:
for(i=1; i<=100; i++)sum=sum+i;
先给 i 赋初值 1,判断 i 是否小于等于 100, 若是则执行语句,之后值增加 1。再重新判断,
直到条件为假,即 i>100 时,结束循环。
相当于:
i=1;
while(i<=100)
{ sum=sum+i;
i++;
}
对于 for 循环中语句的一般形式,就是如下的 while 循环形式:
表达式 1;
while(表达式 2)
{语句
表达式 3;
}
注意:
1) for 循环中的“表达式 1(循环变量赋初值)”、“表达式 2(循环条件)”和“表达式 3(循
环变量增量)”都是选择项, 即可以缺省,但“;”不能缺省。
2) 省略了“表达式 1(循环变量赋初值)”, 表示不对循环控制变量赋初值。
3) 省略了“表达式 2(循环条件)”, 则不做其它处理时便成为死循环。
例如:
for(i=1;;i++)sum=sum+i;
相当于:
i=1;
while(1)
{sum=sum+i;
i++;}
4) 省略了“表达式 3(循环变量增量)”, 则不对循环控制变量进行操作,这时可在语句体中
加入修改循环控制变量的语句。
例如:
for(i=1;i<=100;)
{sum=sum+i;
i++;}
5) 省略了“表达式 1(循环变量赋初值)”和“表达式 3(循环变量增量)”。
例如:
for(;i<=100;)
{sum=sum+i;
i++;}
相当于:
while(i<=100)
{sum=sum+i;
i++;}
6) 3 个表达式都可以省略。
例如:
for(;;)语句
相当于:
while(1)语句
7) 表达式 1 可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
例如:
for(sum=0;i<=100;i++)sum=sum+i;
8) 表达式 1 和表达式 3 可以是一个简单表达式也可以是逗号表达式。
for(sum=0,i=1;i<=100;i++)sum=sum+i;
或:
for(i=0,j=100;i<=100;i++,j--)k=i+j;
9) 表达式 2 一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其
值非零,就执行循环体。
例如:
for(i=0;(c=getchar())!=’ ’;i+=c);
又如:
for(;(c=getchar())!=’ ’;)
printf(“%c”,c);
几种循环的比较
1) 四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循
环。
2) while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强。
3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完
成,而for语句可以在表达式1中实现循环变量的初始化。
授之以鱼不如授之以渔
相信你应该知道该怎么改了吧。
{:12:}
加载中...
realyongshi
2楼-- · 2019-07-17 19:39
精彩回答 2 元偷偷看……
加载中...
上一页
1
2
3
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
while(表达式)语句
其中表达式是循环条件,语句为循环体。
while 语句的语义是:计算表达式的值,当值为真(非 0)时, 执行循环体语句。其执行
过程可用下图表示。
do-while 语句的一般形式为:
do
语句
while(表达式);
这个循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为
真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while 循环至少要执行一次
循环语句。其执行过程可用下图表示。
在 C 语言中,for 语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为:
for(表达式 1;表达式 2;表达式 3) 语句
它的执行过程如下:
1) 先求解表达式 1。
2) 求解表达式 2,若其值为真(非 0),则执行 for 语句中指定的内嵌语句,然后执行下面
第 3)步;若其值为假(0),则结束循环,转到第 5)步。
3) 求解表达式 3。
4) 转回上面第 2)步继续执行。
5) 循环结束,执行 for 语句下面的一个语句。
其执行过程可用下图表示。
for 语句最简单的应用形式也是最容易理解的形式如下:
for(循环变量赋初值;循环条件;循环变量增量) 语句
循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个
关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后
按什么方式变化。这三个部分之间用“;”分开。
例如:
for(i=1; i<=100; i++)sum=sum+i;
先给 i 赋初值 1,判断 i 是否小于等于 100, 若是则执行语句,之后值增加 1。再重新判断,
直到条件为假,即 i>100 时,结束循环。
相当于:
i=1;
while(i<=100)
{ sum=sum+i;
i++;
}
对于 for 循环中语句的一般形式,就是如下的 while 循环形式:
表达式 1;
while(表达式 2)
{语句
表达式 3;
}
注意:
1) for 循环中的“表达式 1(循环变量赋初值)”、“表达式 2(循环条件)”和“表达式 3(循
环变量增量)”都是选择项, 即可以缺省,但“;”不能缺省。
2) 省略了“表达式 1(循环变量赋初值)”, 表示不对循环控制变量赋初值。
3) 省略了“表达式 2(循环条件)”, 则不做其它处理时便成为死循环。
例如:
for(i=1;;i++)sum=sum+i;
相当于:
i=1;
while(1)
{sum=sum+i;
i++;}
4) 省略了“表达式 3(循环变量增量)”, 则不对循环控制变量进行操作,这时可在语句体中
加入修改循环控制变量的语句。
例如:
for(i=1;i<=100;)
{sum=sum+i;
i++;}
5) 省略了“表达式 1(循环变量赋初值)”和“表达式 3(循环变量增量)”。
例如:
for(;i<=100;)
{sum=sum+i;
i++;}
相当于:
while(i<=100)
{sum=sum+i;
i++;}
6) 3 个表达式都可以省略。
例如:
for(;;)语句
相当于:
while(1)语句
7) 表达式 1 可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
例如:
for(sum=0;i<=100;i++)sum=sum+i;
8) 表达式 1 和表达式 3 可以是一个简单表达式也可以是逗号表达式。
for(sum=0,i=1;i<=100;i++)sum=sum+i;
或:
for(i=0,j=100;i<=100;i++,j--)k=i+j;
9) 表达式 2 一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其
值非零,就执行循环体。
例如:
for(i=0;(c=getchar())!=’ ’;i+=c);
又如:
for(;(c=getchar())!=’ ’;)
printf(“%c”,c);
几种循环的比较
1) 四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循
环。
2) while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强。
3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完
成,而for语句可以在表达式1中实现循环变量的初始化。
授之以鱼不如授之以渔
相信你应该知道该怎么改了吧。{:12:}
一周热门 更多>