C语言while的使用

玩个啥子漂流 2020-03-04 04:29:45
求大佬解惑!!! 如果只是单独的一句while语句,没有循环体,且判断条件为真,那程序是不是就一直执行while前面的,不会执行后面的? 如 语句① 语句② while(1); 语句③ 语句④
...全文
131 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2020-03-05
  • 打赏
  • 举报
回复
前后都不执行了。只会一直执行while (1) ;这也是死循环。

建议楼主自己写个程序测试一下~
weixin_40290083 2020-03-05
  • 打赏
  • 举报
回复
只有几行代码,其实你可以把代码写出来运行一下。
陌湘萘 2020-03-05
  • 打赏
  • 举报
回复
这是典型的死循环,这个程序执行过程是这样的:
语句①--->语句②--->while(1) ;
到这里,一直没有跳出while循环,一直在执行一个空的语句
所以while循环下面的语句③④都没有执行,而上面的语句①②只执行了一次。
玩个啥子漂流 2020-03-05
  • 打赏
  • 举报
回复
这是一个按键控制蜂鸣器的代码,按k1蜂鸣器响,按k2蜂鸣器就不响,但是如果我一直按着k2不送开的话,按上面说的:那代码就一直处在while(!k2);的位置,也就不会往下运行,蜂鸣器也还是响的,可我不管是长按k2还是短按,蜂鸣器都不再响
玩个啥子漂流 2020-03-05
  • 打赏
  • 举报
回复
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8; sbit k1=P3^1; sbit k2=P3^0; sbit beep=P1^5; u8 start=0; /******************************************************************************** 函 数 名 : delay* 函数功能 : 延时函数,i=1时,大约延时10us*******************************************************************************/ void delay(u16 i) { while(i--); } void sound() { u8 i=100; while(i--) { beep=~beep; delay(100); } } void keypros() { if(k1==0) //开始 { delay(1000); if(k1==0) { start=1; } while(!k1); } if(k2==0) //停止 { delay(1000); if(k2==0) { start=0; } while(!k2); } }/******************************************************************************** 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*******************************************************************************/ void main() { while(1) { keypros(); if(start==1) { sound(); } else { beep=1; } } }
Jun_sp 2020-03-04
  • 打赏
  • 举报
回复
不会重复执行while前面的语句 展开你就懂了 while (1) { ; } 会一直执行while里面的空语句,也就是执行完语句1和语句2,就停在while(1)上了,什么都不做。
chxchxkkk 2020-03-04
  • 打赏
  • 举报
回复
是的,一直在死循环中

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧