当前位置:首页 » 《我的小黑屋》 » 正文

【C语言初阶篇】 while 语句的语法和注意事项 (详解版)

10 人参与  2024年09月10日 10:03  分类 : 《我的小黑屋》  评论

点击全文阅读



在这里插入图片描述

? 鸽芷咕:个人主页
 ? 个人专栏:《C语言初阶篇》 《C语言进阶篇》

⛺️生活的理想,就是为了理想的生活!


文章目录

前言? 循环语句的介绍? while 语句的介绍? while中的break? while中的continue ? do while 语句的介绍? do语句的特点? do while循环中的break? do while循环中的continue 总结

前言

   ?hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的循环语句的全面讲解!
   ⛳️历时一天终于给肝出来了,本文详细讲解了while,do while循环语句保证你看完必有收获!
   ?本期文章收录在《C语言初阶篇》 ,大家有兴趣可以看看呐
  ⛺️ 欢迎铁汁们 ✔️ 点赞 ? 收藏 ⭐留言 ?!

? 循环语句的介绍

  ⛳️ 在学循环语句我们首先搞明白什么是循环语句。循环语句是用于重复执行某条语句(循环体)的语句,它包含三个部分,分别是:

初始化部分判断部分调整循环部分

而C语言提供了3中循环语句,分别为while语句,do while语句和for语句。

?问题引入:

  ⛳️ 举个例子,在我们学习生活中就和循环息息相关。比如是我们考取证书前提肯定是先学习知识,然后再去考试,学好了就考过了。不然就要继续学习然后参加考试!
请添加图片描述

? while 语句的介绍

  ☁️前一篇文章我们已经讲解了分支语句if语句。当条件满足的情况下,if语句后的语句执行,否则不执行。

但是这个语句只会执行一次。而我们生活中很多事情是:同一件事情我们需要完成很多次。所以C语言中给我们引入了: while for do while 语句,可以实现循环。
? 注:前一篇分支语句在这里 《if语句详解》 《switch语句详解》

? while 语法结构:

while(表达式) 循环语句;

  ⛳️ 大家看是不是和 if 非常像,只要表达式成立就执行语句。只不过 whlie 中语句执行完了之后还要重新进行判断,然后继续执行语句。直到表达式不成立才取消重复执行!
请添加图片描述

我们来演示一下while的用法大家就明白了!比如说:

在屏幕上打印1-10的数字该怎么办呢?。

? 代码演示:

#include <stdio.h>int main(){ int i = 1; while(i<=10) { printf("%d ", i); i = i+1; } return 0;}

? 代码解读:

我们前面讲了循环它包含三个部分: 初始化部分 判断部分 调整循环部分

int i = 1;  在这里是 初始化部分 i<=10    在这里是 判断部分 i = i+1;   在这里是 调整循环部分

  ⛳️ 我们先给 i 符初值然后,就进入 while 里面进行判断判断成立者,执行语句。直到判断不成立就退出 while 循环。
而想在中途退出该怎么办呢?这时就要用到我们的break语句了。

? while中的break

? break代码实例:

#include <stdio.h>int main(){ int i = 1; while(i<=10) { if(i == 5) break; printf("%d ", i); i = i+1; } return 0;}

? 同样的代码我们加上if语句,让他满足条件时执行break看下效果。

? 代码结果:
请添加图片描述
⛳️ 这里我们可以看到break的作用是:

? 其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。? 所以: while中的break是用于永久终止循环的。

? while中的continue

? continue在while循环中的作用是:

? continue是用于终止本次循环的。? 也就是本次循环中continue后边的代码不会再执行,? 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断

?说明:
continuebreak 语句一样都是结束语句但是;

break是直接结束循环。而continue是跳过本次循环。

? 注:但是在while里面使用要注意,一不小心就会造成死循环!我们来看下面代码:

? continue 代码实例:

#include <stdio.h>int main(){ int i = 1; while(i<=10) { if(i == 5) continue; printf("%d ", i); i = i+1; } return 0;}

? 同样的代码break换成continue看看什么效果。

? 代码结果:
在这里插入图片描述
而这里和我们想象的不大一样,continue的作用不是说:

是跳过本次循环嘛?并不会结束循环!那么应该输出的是:1 2 3 4 6 7 8 9 嘛?为什么会输出1 2 3 4 然后一直等待循环呢?

? 我们仔细看会发现原来continue结束的时候下面的

i = i+1; 未执行导致循环的调整循环部分并未发生改变所以 i 一直等于4导致造成死循环。所以在while里面使用continue的时候一定要注意

那么就会有人说,把i+1放到continue的前面不就好了

? 代码演示:

#include <stdio.h>int main(){int i = 1;while (i <= 10){i = i + 1;if (i == 5)continue;printf("%d ", i);}return 0;}

? 代码结果:
请添加图片描述

  ⛳️ 这里我们会发现死循环的问题解决了。但是新的问题又来了这里把 +1 放到前面打印,所以1就打印不出来了。还是没有达到我们预期的效果!

? 所以我们就想,像while这样的语句!? 初始化部分 判断部分 调整循环部分? 三个不都分别在不同的地方所以导致出错!? 那么有没有三个部分都写在一起的?这样就不容易出错了!所以我们又有了for循环语句完美的解决了这个问题

? do while 语句的介绍

? while 语法结构:

do 循环语句;while(表达式);

? do语句的特点

⛳️ 循环至少执行一次,使用的场景有限,所以不是经常使用。

所以do while是先执行循环体然后再进行判断!

? 代码演示:

#include <stdio.h>int main(){ int i = 1; do { printf("%d ", i);    i=i+1; }while(i<=10); return 0;}

? 代码结果:

在这里插入图片描述

? do while循环中的break

⛳️ 其实do while中的break语句和while中作用是一模一样的!

当满足条件执行break语句时,就会直接退出循环!

? 代码演示:

#include <stdio.h>int main(){ int i = 1; do {        if(5 == i)            break; printf("%d ", i);        i=i+1; }while(i<=10);     return 0;}

? 代码结果:
在这里插入图片描述

? do while循环中的continue

⛳️ 而do while中的continue语句和while中作用是一样嘛?

我们来下面代码看一下!

? 代码演示:

#include <stdio.h>int main(){ int i = 1; do {      if(5 == i)          continue; printf("%d ", i);     i=i+1; }while(i<=10);     return 0;}

? 代码结果:

在这里插入图片描述

⛳️ 而这里就发生了和while一样的错误,continue结束之后

? 循环调整部分i=i+1;并没有继续+1,导致发生了死循环!? 那么就没有比 whiledo while 循环更好一点的语法出现了嘛?? 当然有他就是 for 循环,一个比 while 更加安全的循环!

? 注:由于本篇幅限制所以下一章在给大家讲解for循环啦!
?本期文章收录在《C语言初阶篇》,后续的for循环介绍也在里面呢!大家有兴趣可以看看嘞

总结

✅ 归纳:
好了以上就是关于循环语句 while 和 do while 的用法详解,和注意事项就全部讲解完毕啦!
  循环的介绍
  while的用法
  while中continue使用的注意事项
  do while的用法
  do while中continue是怎么样的
☁️ 把这些完全掌握,大家就可以随心所欲的使用循环语句了!
看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注

? ? ? ❤️ ?? ? ? ? ? ?
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/157635.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1