【C语言】循环结构程序设计 (详细讲解)

前言:前面介绍了程序中常常用到的顺序结构和选择结构,但是只有这两种结构是不够的,还有用到循环结构(或者称为重复结构)。因为在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题。

【卫卫卫的代码仓库】
【选择结构】
【专栏链接】这里是引用

while语句实现循环

while表达式的一般形式如下:
while(表达式) 语句

其中的语句就是循环体。循环体只能是一个语句,可是一个简单的语句,还可以是复合语句(用花括号扩起来的若干语句)。执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般形式的表达式,它也称为循环条件表达式。当此表达式的值为(以非0的值表示)时,就执行循环体语句;为时(以0表示)时,就不执行循环体语句。
我们可以简单的记为:只要当循环条件表达式为真(即条件成立),就执行循环体语句

看例题:求 1 + 2 + 3 + … + 99 + 100的和

int main()
{int i = 1;int sum = 0;while (i <= 100){sum += i;i++;}printf("%d\n", sum);return 0;
}

代码流程图分析:
在这里插入图片描述

运行结果:
在这里插入图片描述


do…while语句实现循环

除了while语句以外,C语言还提供了do…while语句来实现循环结构体。如:

int i = 1; //设变量i的初始值为1
do   //循环结构开始
{printf("%d",i++);//循环体
}while(i <= 100); //当i小于等于100时,继续执行循环体

do … while的一般形式为:
在这里插入图片描述

其中的“语句”就是循环体。它的执行过程可以用图5.4表示。它的执行逻辑如下图所示:
在这里插入图片描述

例题:用do…while语句求 1+ 2 + 3 + … + 99 + 100的和

int main()
{int i = 1;int sum = 0;do{sum += i;i++;} while (i <= 100);printf("sum = %d\n", sum);return 0;
}

运行结果:在这里插入图片描述


用for语句实现循环

除了while语句和do…while语句实现循环外,C语言还提供了for语句实现循环,而且for语句更加灵活,不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环条件的情况,它可以完全代替while语句。

例如:

for (i = 1; i <= 100; i++) //控制循环次数,由1变到100,共循环100次printf("%d",i);        //执行循环体,输出i当前值

它的执行过程如下图:

在这里插入图片描述


for语句的一般形式为:
在这里插入图片描述


用break提前中止循环

break语句可以用来从循环体内部跳出循环体,即提前结束循环,接着执行循环下面的语句。

例题:在全系1000名学生中举行慈善捐款,当总数达到10万元时就结束,统计此时捐款的人数以及平均每人捐款的数目。

int main()
{float amount = 0.0;float ave = 0.0;float total = 0.0;int i = 0;for (i = 1; i <= 1000; i++){printf("请输入你的捐款数额\n");scanf("%f", &amount);total += amount;if (total >= 100000){break;}}ave = total / i;printf("捐款的人数是%d:\n", i);printf("每人捐款的平均值%f\n", ave);return 0;
}

运行结果:
在这里插入图片描述


用continue语句提前结束本次循环

有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环。这时可以用continue语句。
例题:要求输出100 ~ 200的不能被3整除的数

int main()
{int i = 0;for (i = 100; i <= 200; i++){if (i % 3 == 0){continue;}printf("%d ", i);}printf("\n");return 0;
}

运行结果:
在这里插入图片描述


今天的内容就讲到这里了,如果各位觉得讲的好的话麻烦给作者一个三连吧!讲的不好的话也麻烦各位多多指出了,谢谢各位的观看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147263.html

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

相关文章

HTML的相关知识

1.什么是HTML&#xff1f;基本语法 HTML: Hyper Text Markup Language &#xff08;超文本标记语言&#xff09; 超文本&#xff1f;超级文本&#xff0c;例如流媒体&#xff0c;声音、视频、图片等。 标记语言&#xff1f;这种语言是由大量的标签组成。HTML标签参考手…

【数据结构】堆的应用-----TopK问题

目录 一、前言 二、Top-k问题 &#x1f4a6;解法一&#xff1a;暴力排序 &#x1f4a6;解法二&#xff1a;建立N个数的堆 &#x1f4a6;解法三&#xff1a;建立K个数的堆&#xff08;最优解&#xff09; 三、完整代码和视图 四、共勉 一、前言 在之前的文章中&#xff…

React18入门(第一篇)——JSX、TSX语法详解

文章目录 一、JSX 语法简介二、和 HTML 标签的几点不同三、JSX 属性四、JSX 事件4.1 简单点击事件4.2 类型限制4.3 带参数&#xff0c;箭头函数 五、插入 JS 变量六、JSX 中使用条件判断七、循环 一、JSX 语法简介 JSX - 是 JS 的扩展&#xff0c;写在 JS 代码里面&#xff0c…

计算机算法分析与设计(4)---凸多边形的最优三角划分(含C++代码)

文章目录 一、概述1.1 概念说明1.2 与矩阵连乘对应关系1.3 递归定义 二、代码 一、概述 1.1 概念说明 1. 用多边形顶点的逆时针序列表示凸多边形&#xff0c;即P{V0, V1, … Vn-1, Vn}表示具有n1条边的凸多边形。 2. 若Vi和Vj是多边形上不相邻的两个顶点&#xff0c;则线段ViV…

SEO搜索引擎

利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名&#xff0c;吸引更多的用户访问网站&#xff0c;提高网站的访问量&#xff0c;提高网站的销售能力和宣传能力&#xff0c;从而提升网站的品牌效应 搜索引擎优化的技术手段 黑帽SEO 通过欺骗技术和滥用搜索算法来推销毫不…

Armv8/Armv9 Cache知识大纲分享--思维导图

关键词&#xff1a;cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频&#xff0c;cache视频、mmu视频&#xff0c;armv8视频、armv9视频、FF-A视频、密码学视频、RME/CC…

力扣:118. 杨辉三角(Python3)

题目&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官…

DS线性表之链表

前言 我们上一期介绍了顺序表&#xff0c;它的底层就是数组&#xff0c;我们也分别对顺序表的动态版本和静态版本进行了实现&#xff01;并且分析了顺序表的优缺点&#xff0c;优点是&#xff1a;尾插、尾删效率很高&#xff0c;其时间复杂度是O(1)&#xff1b;缺点是&#xff…

使用 ClassFinal 对 java class 文件进行加密防止反编译

ClassFinal 是一款 java class文件安全加密工具&#xff0c;支持直接加密 jar 包或 war 包&#xff0c;无需修改任何项目代码&#xff0c;兼容 spring-framework&#xff1b;可避免源码泄漏或字节码被反编译 特点 无需修改原项目代码&#xff0c;只要把编译好的jar/war包用本工…

Nginx简介与Docker Compose部署指南

Nginx是一款高性能的开源Web服务器和反向代理服务器&#xff0c;以其卓越的性能、可伸缩性和灵活性而闻名。它在全球范围内广泛用于托管Web应用程序、负载均衡、反向代理和更多场景中。在本文中&#xff0c;我们将首先介绍Nginx的基本概念&#xff0c;然后演示如何使用Docker C…

tortoiseSVN树冲突解决方案

方案一&#xff1a; 手动导出 trunk 上的文件(夹)&#xff0c;把本地目录文件(夹)删了并替换成 trunk上的&#xff0c;再点击测试合并方案二&#xff1a; 如果执行了方案一还是冲突&#xff0c;确认本地和trunk文件一致后&#xff0c;可以跳过冲突的revision

【NLP的python库(03/4) 】: 全面概述

一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始&#xff0c;到句法分析、解析文本并分配句法角色&#xff0c;再到语义处理&#xff0c;例如识别命名实体、情感分析和文档分类&#xff0c;一切都由至少一个库提供。那么&#xff0c;你…

Linux--socket编程

socket套接字编程 一、服务器和客户端的开发步骤&#xff1a; 1、创建套接字 2、为套接字添加信息&#xff08;ip地址和端口号&#xff09; 3、监听网络连接 4、监听到有客户端接入&#xff0c;接受连接&#xff08;如没有接入&#xff0c;会发生阻塞到&#xff09; 5、数据…

【机器学习】熵和概率分布,图像生成中的量化评估IS与FID

详解机器学习中的熵、条件熵、相对熵、交叉熵 图像生成中常用的量化评估指标通常有Inception Score (IS)和Frchet Inception Distance (FID) Inception Score (IS) 与 Frchet Inception Distance (FID) GAN的量化评估方法——IS和FID&#xff0c;及其pytorch代码

Unity 鼠标悬浮时文本滚动(Text Mesh Pro)

效果 直接将脚本挂载在Text Mesh Pro上&#xff0c;但是需要滚动的文本必须在Scroll View中&#xff0c;否侧会定位错误&#xff0c;还需要给Scroll View中看需求添加垂直或者水平布局的组件 代码 using System.Collections; using System.Collections.Generic; using UnityE…

思科:iOS和iOSXe软件存在漏洞

思科警告说,有人试图利用iOS软件和iOSXe软件中的一个安全缺陷,这些缺陷可能会让一个经过认证的远程攻击者在受影响的系统上实现远程代码执行。 中严重程度的脆弱性被追踪为 CVE-2023-20109 ,并以6.6分得分。它会影响启用Gdoi或G-Ikev2协议的软件的所有版本。 国际知名白帽黑客…

世界前沿技术发展报告2023《世界航天技术发展报告》(二)卫星技术

&#xff08;二&#xff09;卫星技术 1.概述2. 通信卫星2.1 美国太空发展局推进“国防太空体系架构”&#xff0c;持续部署“传输层”卫星2.2 美国军方在近地轨道成功演示验证星间激光通信2.3 DARPA启动“天基自适应通信节点”项目&#xff0c;为增强太空通信在轨互操作能力提供…

c#设计模式-结构型模式 之 组合模式

&#x1f680;简介 组合模式又名部分整体模式&#xff0c;是一种 结构型设计模式 &#xff0c;是用于把一组相似的对象当作一个 单一的对象 。组合模式 依据树形结构来组合对象 &#xff0c;用来表示部分以及整体层&#xff0c;它可以让你将对象组合成树形结构&#xff0c;并且…

【AI视野·今日CV 计算机视觉论文速览 第258期】Mon, 2 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Mon, 2 Oct 2023 (showing first 100 of 112 entries) Totally 100 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;HAvatar,基于神经辐射场的头部合成重建。(from 清华大学) &#x1f4da;GAIA-1, 用于自…

线上Vue项目访问其他服务器接口(宝塔平台配置解决)

前端本地解决跨域问题非常简单&#xff0c;配置代理即可&#xff0c;线上需要配置nginx&#xff0c;宝塔给我们更简单的配置方式&#xff1a;反向代理。 登录进宝塔页面&#xff0c;选择网站&#xff0c;点击网站名&#xff0c;选择反向代理 点击添加反向代理 注意&#xff…