《C语言初阶篇》循环语句还没搞懂?这篇文章带你轻松学会循环语句!


在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《快速入门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://www.hqwc.cn/news/18871.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css 字体间距 设置

一、css word-spacing属性设置字间距&#xff08;单词的间距&#xff09; word-spacing 属性增加或减少单词间的空白&#xff08;即字间隔&#xff09;&#xff1b;在这个属性中&#xff0c;“字” 定义为由空白符包围的一个字符串。也就是说该属性是以空格为基准进行调节间距…

ProtoBuf的学习并且制作了一个网络通讯录项目

Linux环境下载安装ProtoBuf编译器 1. 安装依赖库 Ubuntu用户选择 sudo apt-get install autoconf automake libtool curl make g unzip -yCentos用户选择 sudo yum install -y autoconf automake libtool curl make gcc-c unzip2. 下载ProtoBuf编译器 Github地址&#xff…

力扣 53. 最大子数组和

题目来源&#xff1a;https://leetcode.cn/problems/maximum-subarray/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a;难点在于判断什么时候更新count。 是当nums[i]为正数吗&#xff1f;那要nums没有正数怎么办&#xff1b; 是当nums[i]比之前子数组…

Github Pages

官方教程&#xff1a;https://pages.github.com/ 1 创建仓库 命名为 你的名字.github.io 克隆项目 git clone https://github.com/username/username.github.io加入index.html页面 在克隆的项目中&#xff0c;加入一个index.html html文件简单写几个dom <!DOCTYPE html…

java的静态代码块

java的静态代码块用static声明&#xff0c;在类被加载的时候调用。可以包含多个静态代码块&#xff0c;按照出现的顺序执行。静态代码块可以用来对类变量初始化。 代码示例&#xff1a; package com.thb;import java.nio.channels.spi.SelectorProvider;public class Test1 {…

Linux Vim提示:E325: ATTENTION 解决方案

提示&#xff1a; 这是由于我们异常退出vim界面 程序异常关闭导致的 解决&#xff1a; 在这种情况下&#xff0c;您可以根据以下选项来解决问题&#xff1a; [O]pen Read-Only&#xff1a;以只读模式打开文件。这意味着您不能编辑文件&#xff0c;但可以查看其内容。选择此选…

Java安全——基于密码的加密

Java安全 基于密码的加密 基于密码加密和SSL加密的区别 密码加密可以数据和密码分离传输SSL只限于在套接字空间传输的数据进行加密 SSL和密码加密 密码加密是指通过算法将原始信息转换成密文&#xff0c;只有知道相应密钥的人才能解密。Java中常用的密码加密算法包括MD5、SHA、…

走进Linux世界【二、VM与Linux安装】

第二章 VM与Linux安装 1、安装VMware ​ 这里安装Vm主要是为了安装Linux系统&#xff0c;除了相对云服务器&#xff0c;比较大众化的操作&#xff0c;当然更多的是熟悉Linux操作 1、Windows安装 ​ (1) 下载链接&#xff0c;目前版本上下载VM15的版本即可https://www.vmwar…

两个分数比较大小

解决问题&#xff1a; 对于分子和分母的数据范围过大 导致化成小数进行比较大小的时候 存在精度丢失&#xff0c;不能比较的情况 为此进行算式变形推出 故采用如下自定义函数&#xff1a; ll bj(ll fz1,ll fm1,ll fz2,ll fm2){//分母相等if(fm1 fm2){return fz1-fz2;}//分…

GPT(Generative Pre-Training)论文解读及实现(一)

1 GPT Framework 1.1 Unsupervised pre-training Given an unsupervised corpus of tokens U {u1, . . . , un}, we use a standard language modeling objective to maximize the following likelihood: 在给定语料上下文环境下&#xff0c;目标时最大化下面的语言模型&…

3d Max中的Arnold渲染为黑色,这样处理!

使用Arnold渲染视图(ARV)时&#xff0c;图像保持黑色。 快照功能和常规3ds Max渲染设置可按预期生成图像。 解决方案&#xff1a; 解决方案可能需要执行下面的一项或多项操作&#xff1a; 添加光源 检查场景文件是否包含光源。如果场景中没有光源&#xff0c;渲染结果为黑色…

vue中使用v-for实现两次嵌套循环,判断某子元素是否显示,进行复杂表单校验

一、需求场景&#xff1a; 有以下一个使用场景&#xff0c;名称111、名称222、名称333&#xff0c;是放在一个大数组里的&#xff0c;然后通过第一层for循环显示出来的。名称333数组里又包含自己的子数组&#xff0c;子数组再通过第二次for循环展示出来。当我们选择发放方式的…