从零开始的循环之旅(下)

简介: 从零开始的循环之旅(下)

前言


在上期中,我们掌握了 if 语句:

if(条件)
     语句;


当条件满足的情况下,if语句后的语句执行,否则不执行。

但是这个语句只会执行一次。

很多情况下我们执行的某件事情需要反复执行,这时我们就需要使用 while 语句来实现循环。


1.1、while


while 语句如下:

while(表达式)
 循环语句;


我们来看下面的例子,来更好的学习它。

#include <stdio.h>
int main()               //在屏幕上打印1~10
{
  int i = 1;
  while(i<=10)            //当i<=10时为真,执行while里的语句
   {                   //当i=11时为假,不执行while里的语句
    printf("%d ", i);
    i = i+1;         //每次打印完i加一,再回到(i<=10)进行判断
   }
  return 0;
}


1.2、while语句中的break和continue


在上期的 switch 中,我们了解了 break ,那它在 while 语句中又是怎样的呢?

话不多说,我们上代码:

#include <stdio.h>
int main()           //大家觉得最终输出结果是什么呢?
{
  int i = 1;
  while(i<=10)
  {
    if(i == 5)
      break;
    printf("%d ", i);
    i = i+1;
  }
  return 0; 
 }

输出结果:1 2 3 4

从这个输出结果我们可以猜出 break 的作用就是退出循环了


下面我们再来看一下 continue 作用,话不多说直接上代码:

#include <stdio.h>
int main()        //大家可以猜猜这个代码输出结果是啥
{
   int i = 1;
   while(i<=10)
    {
      if(i == 5)
          continue;
        printf("%d ", i);
        i = i+1;
    }
  return 0;
 }


输出结果:1 2 3 4

那么 continue 的作用是什么呢?

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


2.1、for循环


我们来看一下 for 循环的语法:

for(表达式1; 表达式2; 表达式3)
 循环语句;


表达式1为初始化部分,用于初始化循环变量的。

表达式2为条件判断部分,用于判断循环时候终止。

表达式3为调整部分,用于循环条件的调整。


我们来看个简单例子:


对比 while 循环,for 循环更加简洁明了,更容易修改。

所以 for 循环的使用频率最高。我们也优先选择 for 循环。


2.2、for循环中的break和continue


在for循环中也可以使用break和continue,break 的作用不变,continue 略有差异。

我们上代码来看看吧


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


我们来看输出结果吧 :1 2 3 4 6 7 8 9 10

这里的 continue 作用是直接回到 for 后面的 i++ ,也就是表达式3,使得5没有被打印。


3.1、do…while()循环


do语句的语法:

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

do语句的特点:

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


#include <stdio.h>
int main()
{                      //打印1~10
  int i = 1;
  do
  {
  printf("%d ", i);
  i=i+1;
  }
  while(i<=10);     //若i<=10,进入循环语句
  return 0; 
}

3.2、do while循环中的break和continue


break 作用还是退出循环

我们来看看 continue 吧


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


输出结果:1 2 3 4

那么 continue 的作用也就很明显了,就是直接去到 i<=10 ,也就是表达式里进行判断。


总结


break和continue的用法大同小异,记住这几点就没错了:

1、break 是退出该循环。

2、continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,而是直接跳转到循环语句的判断部分(for 循环是跳到表达式3)。


最后


如果有错误的地方还请大家指出,有问题也可以在评论区讨论,我们下期见。


相关文章
|
API
免费节假日api接口使用教程-聚合数据
免费节假日api接口使用教程-聚合数据
4404 0
免费节假日api接口使用教程-聚合数据
|
存储 消息中间件 网络协议
金鱼哥RHCA回忆录:DO447Ansible Tower的维护和常规管理--基本的故障排除
第十四章 Ansible Tower的维护和常规管理--基本的故障排除
875 0
金鱼哥RHCA回忆录:DO447Ansible Tower的维护和常规管理--基本的故障排除
|
JavaScript 前端开发 API
core-js介绍及安装使用
core-js介绍及安装使用
core-js介绍及安装使用
|
8月前
|
机器学习/深度学习 存储 自动驾驶
《深度剖析:设计最优深度Q网络结构,精准逼近Q值函数》
深度Q网络(DQN)结合深度学习与Q学习,通过神经网络逼近Q值函数,指导智能体在不同状态下选择最优动作。其核心优势在于解决高维状态空间下的决策问题,利用经验回放机制和目标网络提高训练稳定性。设计高效DQN需考虑输入层、隐藏层及输出层结构,针对不同任务选择合适的网络架构,如CNN处理图像数据,MLP应对数值型状态。案例分析显示,在CartPole和Atari游戏中,DQN通过优化网络结构和策略,取得了显著效果。未来研究将聚焦于更智能的网络设计和跨领域技术融合,拓展DQN的应用范围。
643 14
|
定位技术
uniapp地图标记点的点击事件
uniapp地图标记点的点击事件
412 2
|
12月前
|
存储 编解码 算法
视频编码格式和封装格式有什么关系?相机常见的编码格式有哪些?
视频编码格式与封装格式的关系类似于酒与酒瓶的关系。编码格式是视频的核心内容,如H.264、H.265等,而封装格式则是将视频、音频、字幕等集成在一起的外壳,如MP4、MKV等。不同的封装格式适应不同的播放需求,例如MP4兼容性最好,MKV适合网络传播。
|
关系型数据库 MySQL 分布式数据库
PolarDB操作报错合集之遇到报错:Nested transactions are not supported,该怎么办
在使用阿里云的PolarDB(包括PolarDB-X)时,用户可能会遇到各种操作报错。下面汇总了一些常见的报错情况及其可能的原因和解决办法:1.安装PolarDB-X报错、2.PolarDB安装后无法连接、3.PolarDB-X 使用rpm安装启动卡顿、4.PolarDB执行UPDATE/INSERT报错、5.DDL操作提示“Lock conflict”、6.数据集成时联通PolarDB报错、7.编译DN报错(RockyLinux)、8.CheckStorage报错(源数据库实例被删除)、9.嵌套事务错误(TDDL-4604)。
334 1
|
编解码 测试技术 数据库连接
【软件测试】基础篇 -- 详解
【软件测试】基础篇 -- 详解
|
开发工具 git
【IntelliJ IDEA】如何在IntelliJ IDEA中使用Git .ignore插件忽略不必要提交的文件
【IntelliJ IDEA】如何在IntelliJ IDEA中使用Git .ignore插件忽略不必要提交的文件
795 0
|
安全 网络安全
配置SSH服务远程连接空闲超时退出时间(包括SSH无法登录、登录缓慢)
配置SSH服务远程连接空闲超时退出时间(包括SSH无法登录、登录缓慢)
503 0