4.5 C语言while循环语句

版权声明:本文为芝麻软件工作室原创文章,未经芝麻软件工作室允许不得转载。 https://blog.csdn.net/softn/article/details/51830542
在单片机 C 语言编程的时候,每个程序我们都会固定的加一句 while(1),这条语句就可以起到死循环的作用。对于 while 语句来说,他的一般形式是:
while (表达式){
循环体语句;
}
在 C 语言里,通常表达式符合条件,我们叫做真,不符合条件,叫做假。比如前边 i<30000,当 i 等于 0 的时候,那这个条件成立,就是真;如果 i 大于 30000 的时候,条件不成立,就叫做假。

while(表达式)这个括号里的表达式,为真的时候,就会执行循环体语句,当为假的时候,就不执行。在这里先不举例,后边遇到时再详细说明。

还有另外一种情况,就是我们 C 语言里边,除了表达式外,还有常数,习惯上,我们把非 0 的常数都认为是真,只有 0 认为是假,所以我们程序中使用了 while(1),这个数字 1,可以改成 2、3、4…等等都可以,都是一个死循环,不停的执行循环体的语句,但是如果把这个数字改成 0,那么就不会执行循环体的语句了。

大家通过学习 for 循环和 while 循环,是不是会产生一个疑问?为何有的循环加上{},而有的循环却没加呢?什么时候需要加,什么时候不需要加呢?

我们前边讲过,在 C 语言中,分号表示语句的结束,而在循环语句里{}表示的是循环体的所有语句,如果不加大括号,则只循环执行一条语句,即第一个分号之前的语句,而加上大括号后,则会执行大括号中所有的语句,举个例子看一下吧,上节课的闪烁小灯程序如下所示。

程序一:

while (1){
LED = 0;
for(i=0;i<30000;i++);
LED = 1;
for(i=0;i<30000;i++);
}

程序二:

while (1)
LED = 0;
for(i=0;i<30000;i++);
LED = 1;
for(i=0;i<30000;i++);

程序一就是我们上节课的程序,直接可以实现闪烁功能。而程序二没有加大括号,从语法上来看是没有任何错误的,写到 Keil 里编译一下也不会报错。但是从逻辑上来讲,程序二只会不停的循环“LED = 0;”这条语句,实际上和程序三效果是相同的。

程序三:

while(1){
LED = 0;
}
for(i=0;i<30000;i++);
LED = 1;
for(i=0;i<30000;i++);

程序执行到 while(1)已经进入死循环了,所以后边三条语句是一辈子也执行不到的。因此为了防止出类似的逻辑错误,我们推荐,不管循环语句后边是一条还是多条语句,都加上{}以防出错。


作者:seven-soft
来源:CSDN
原文:https://blog.csdn.net/softn/article/details/51830542
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值