当前位置: 首页 > news >正文

C语言:for、while、do-while循环语句

目录

前言

一、while循环

1.1 while语句的执行流程

1.2 while循环的实践

1.3 while循环中的break和continue

1.3.1 break

1.3.2 continue

二、for循环

2.1 语法形式

2.2 for循环的执行流程

2.3 for循环的实践

2.4 for循环中的break和continue

2.4.1 break

2.4.2 continue

三、do-while循环

3.1 语法形式

3.2 do-while循环的执行流程

3.3 do-while循环的实践

 3.4 do-while循环中的break和continue


前言

    C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合,我们可以使用 for 、 while 、 do while 实现循环结构。

一、while循环

    C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句,while 语句的语法结构和 if 语句非常相似。

1.1 while语句的执行流程

     首先上来就是执行判断表达式,表达式的值为0,循环直接结束,表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下⼀次判断。

1.2 while循环的实践

例子:在屏幕上打印 1~10 的值

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

1.3 while循环中的break和continue

1.3.1 break

#include <stdio.h>
int main()
{int i = 1;while(i<=10){if(i == 5)break;//当i等于5后,就执⾏break,循环就终⽌了 printf("%d ", i);i = i+1;}return 0;
}

     打印了1,2,3,4后,当i等于5的时候,循环正 break 的地方终止,不再打印,不再循环,所以 break 的作用就是永久的终止循环,只要 break 被执行, break 外的第⼀层循环就终止了,那以后我们在循环中,想在某种条件下终止循环,则可以使用 break 来完成我们想要的效果。 

1.3.2 continue

     continue 是继续的意思,在循环中的作用就是跳过本次循环中 continue 后边的代码,继续进⾏ 下⼀次循环的判断。

#include <stdio.h>
int main()
{int i = 1;while(i<=10){if(i == 5)continue;//当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅ //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环 printf("%d ", i);i = i+1;}return 0;
}

     到这⾥我们就能分析出来, continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接 到循环的判断部分,进行下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成 死循环。  

二、for循环

2.1 语法形式

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:

for(表达式1; 表达式2; 表达式3)
语句;   //如果循环体想包含更多的语句,可以加上⼤括号 

表达式1   用于循环变量的初始化

表达式2   用于循环结束条件的判断

表达式3   用于循环变量的调整  

2.2 for循环的执行流程

     首先执行 表达式1 初始化循环变量,接下来就是执行 表达式2 的判断部分, 表达式2 的结果如果 ==0,则循环结束, 表达式2 的结果如果 !=0 则执行循环语句,循环语句执行完后,再去执行 表达式3  ,调整循环变量,然后再去 表达式2 的地方执行判断, 表达式2 的结果是否为0,决定循环是否继续,整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

2.3 for循环的实践

例子:在屏幕上打印1~10的值 

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

2.4 for循环中的break和continue

2.4.1 break

     其实和 while 循环中的 break ⼀样, for 循环中的 break 也是用于终止循环的,不管循环还需 要循环多少次,只要执行到了 break ,循环就彻底终止,我们上代码。  

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

     break 的作用是永久的终止循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以 使用 break 来完成。

2.4.2 continue

#include <stdio.h>
int main()
{int i = 1;for(i=1; i<=10; i++){if(i == 5)continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分 printf("%d ", i);}return 0;
}

     在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调整部分,未来当某个条件发⽣的时候,本次循环无需再执行后续某些操作的时候,就可以使用 continue 来实现。

三、do-while循环

3.1 语法形式

在循环语句中 do while 语句的使用最少,它的语法如下:

do
 语句;
while(表达式);

     while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳 出循环,而 do while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 后的判断表达式,表达式为真,就会进行下⼀次,表达式为假,则不再继续循环。

3.2 do-while循环的执行流程

     在 do while 循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的 结果是!=0,则继续循环,执行循环语句,判断表达式的结果==0,则循环结束,所以在 do while 语句中循环体是至少执行⼀次的,这是 do while 循环比较特殊的地方。

3.3 do-while循环的实践

例子:在屏幕上打印1~10的值

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

 3.4 do-while循环中的break和continue

     do-while 语句中的 break 和 continue 的作用和 while 循环中几乎⼀模⼀样,就不多说了。

break

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

continue 

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

      本篇内容就到这里了,希望对各位有帮助,如果有错欢迎指出。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Android系统架构
  • Spring 声明式事务 @Transactional
  • 【STM32单片机_(HAL库)】3-2-3【中断EXTI】【电动车报警器项目】433M无线收发模块实验
  • 【LeetCode热题100】滑动窗口
  • Spring MVC中获取请求参数的方式
  • leetcode_55. 跳跃游戏
  • 【杂乱算法】七种常见的排序
  • 如何使用unittest和pytest进行python脚本的单元测试
  • 计算机储存单位换算:1KB等于多少GB
  • MS8561/8562精密、低噪、CMOS、轨到轨输入输出运算放大器
  • AWS 注册一年后是否需要花钱?
  • 贪心算法之重叠区间问题
  • Linux | 深入探究Linux进程控制:从fork到进程等待再到进程替换
  • 使用WINUI3 编写一个小软件1 C#
  • 如何更改select option边框颜色和选中的颜色
  • .pyc 想到的一些问题
  • android 一些 utils
  • Android组件 - 收藏集 - 掘金
  • Apache的基本使用
  • Javascript 原型链
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • PHP CLI应用的调试原理
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React as a UI Runtime(五、列表)
  • spring cloud gateway 源码解析(4)跨域问题处理
  • vue总结
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 大数据与云计算学习:数据分析(二)
  • 关于 Cirru Editor 存储格式
  • 观察者模式实现非直接耦合
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 免费小说阅读小程序
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 一份游戏开发学习路线
  •  一套莫尔斯电报听写、翻译系统
  • 再次简单明了总结flex布局,一看就懂...
  • python最赚钱的4个方向,你最心动的是哪个?
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​一些不规范的GTID使用场景
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #include<初见C语言之指针(5)>
  • #LLM入门|Prompt#3.3_存储_Memory
  • $.ajax中的eval及dataType
  • (6)STL算法之转换
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (poj1.3.2)1791(构造法模拟)
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • ./和../以及/和~之间的区别
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core中如何集成RabbitMQ