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

news2025/1/14 1:17:23

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

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

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.coloradmin.cn/o/1057978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言数组和指针笔试题(五)(一定要看)

这里写目录标题 指针运算笔试题解析题目1解析结果 题目2解析结果 题目3解析结果 题目4解析结果 题目5解析结果 题目6解析结果 题目7解析结果 题目8解析结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412;个人主页 &a…

【智能家居项目】裸机版本——设备子系统(LED Display 风扇)

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 输入子系统中目前仅实现了按键输入&#xff0c;剩下的网络输入和标准输入在以后会逐步实现&am…

生鲜蔬果同城配送社区团购小程序商城的作用是什么

生鲜蔬果行业作为市场主要支撑之一&#xff0c;从业商家众多的同时消费者也从不缺&#xff0c;尤其对中高城市&#xff0c;生鲜蔬果除了传统线下超市、市场经营外&#xff0c;线上更是受到大量消费者信任&#xff0c;而很多商家也是自建了生鲜蔬果商城多场景生意经营。 那么通…

家具商家通过商城小程序发展的作用是什么

家具商品覆盖床具、桌椅茶几、沙发等多个细分种类&#xff0c;市场需求较高&#xff0c;而传统消费者也是通过线下方式购买配送&#xff0c;但随着线下经营痛点显现&#xff0c;如流量匮乏拓客难、无法满足同城外地客户随时购物需求、营销难、经营难等&#xff0c;因此不少商家…

第九章 动态规划 part14 1143. 最长公共子序列 1035. 不相交的线 53. 最大子序和

第五十六天| 第九章 动态规划 part14 1143. 最长公共子序列 1035. 不相交的线 53. 最大子序和 一、1143. 最长公共子序列 题目链接&#xff1a; 题目介绍&#xff1a; 思路&#xff1a; 本题和“最长重复子数组”区别在于**这里不要求是连续的了&#xff0c;但要有相对顺序*…

安防监控用品经营商城小程序搭建

安防监控产品种类很多&#xff0c;如监控摄像头、烟感、机房系统、对讲机等&#xff0c;虽然不是每个家庭都需要&#xff0c;但却占据着市场不小份额&#xff0c;其应用度也非常广泛&#xff0c; 而在实际销售方面&#xff0c;除了门店、入驻第三方电商平台或朋友圈售卖外&…

Docker 容器监控 - Weave Scope

Author&#xff1a;rab 目录 前言一、环境二、部署三、监控3.1 容器监控 - 单 Host3.2 容器监控 - 多 Host 总结 前言 Docker 容器的监控方式有很多&#xff0c;如 cAdvisor、Prometheus 等。今天我们来看看其另一种监控方式 —— Weave Scope&#xff0c;此监控方法似乎用的人…

ctfshow—1024系列练习

1024 柏拉图 有点像rce远程执行&#xff0c;有四个按钮&#xff0c;分别对应四份php文件&#xff0c;开始搞一下。一开始&#xff0c;先要试探出 文件上传到哪里&#xff1f; 怎么读取上传的文件&#xff1f; 第一步&#xff1a;试探上传文件位置 直接用burp抓包&#xff0c;…

PowerPoint如何设置密码?

PowerPoint&#xff0c;也就是PPT&#xff0c;是很多人工作中经常用的办公软件&#xff0c;而PPT和Word、Excel等一样可以设置密码保护。 PPT可以设置两种密码&#xff0c;一种是“打开密码”&#xff0c;也就是需要密码才能打开PPT&#xff1b;还有一种是设置成有密码的“只读…

python实现http/https拦截

python实现http拦截 前言:为什么要使用http拦截一、技术调研二、技术选择三、使用方法前言:为什么要使用http拦截 大多数爬虫玩家会直接选择API请求数据,但是有的网站需要解决扫码登录、Cookie校验、数字签名等,这种方法实现时间长,难度高。需求里面不需要高并发,有没有…

Docker系列--在容器中安装JDK的方法(有示例)

原文网址&#xff1a;Docker系列--在容器中安装JDK的方法(有示例)_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍如何在容器中安装JDK。 为什么要装JDK&#xff1f; JDK里有很多工具&#xff0c;比如jps、jstack、jmap等&#xff0c;可以排查问题。 本文目标 给Ubuntu系…

【数据结构】海量数据处理

【数据结构】海量数据处理 前言 海量数据处理是指基于海量数据的存储和处理&#xff0c;正因为数据量太大&#xff0c;所以导致要么无法在短时间内迅速处理&#xff0c;要么无法一次性装入内存。 对于时间问题&#xff0c;就可以采用位图、布隆过滤器等数据结构来解决。对于…

摄影后期图像编辑软件Lightroom Classic 2023 mac中文特点介绍

Lightroom Classic 2023 mac是一款图像处理软件&#xff0c;是数字摄影后期制作的重要工具之一&#xff0c;lrc2023 mac适合数字摄影后期制作、摄影师、设计师等专业人士使用。 Lightroom Classic 2023 mac软件特点 高效的图像管理&#xff1a;Lightroom Classic提供了强大的图…

分布式应用程序协调服务 ZooKeeper 详解

目录 1、ZooKeeper简介 2、ZooKeeper的使用场景 3、ZooKeeper设计目的 4、ZooKeeper数据模型 5、ZooKeeper几个重要概念 5.1、ZooKeeper Session 5.2、ZooKeeper Watch 5.3、Consistency Guarantees 6、ZooKeeper的工作原理 6.1、Leader Election 6.2、Leader工作流…

Docker中MySql容器的数据挂载

1.查看是否有数据卷 docker inspect mysql 说明&#xff1a;Name的值是随机生成的不是命令的。因此没有数据卷。 2. 目录挂载 说明&#xff1a;本地目录不允许简写&#xff1b;在执行docker runi命令时&#xff0c;使用-v本地目录&#xff1a;容器内目录可以完成本地目录挂载…

Python之函数、模块、包库

函数、模块、包库基础概念和作用 A、函数 减少代码重复 将复杂问题代码分解成简单模块 提高代码可读性 复用老代码 """ 函数 """# 定义一个函数 def my_fuvtion():# 函数执行部分print(这是一个函数)# 定义带有参数的函数 def say_hello(n…

列表的增删改查和遍历

任务概念 什么是任务 任务是一个参数为指针&#xff0c;无法返回的函数&#xff0c;函数体为死循环不能返回任务的实现过程 每个任务是独立的&#xff0c;需要为任务分别分配栈称为任务栈&#xff0c;通常是预定义的全局数组&#xff0c;也可以是动态分配的一段内存空间&#…

农产品团购配送商城小程序的作用是什么

农产品覆盖稻麦油蛋等多种细分类目&#xff0c;各地区经营商家众多&#xff0c;随着人们生活品质提升&#xff0c;对食物的要求也在提升&#xff0c;绿色无污染无激素的农产品往往受到不少人喜爱&#xff0c;而在销售中&#xff0c;也有不少人选择自建商城线上经营。 通过【雨…

【软考】磁盘工作原理 计算最多最少读取时间

这个题目重复看了三四遍讲解&#xff0c;才完全搞懂计算过程&#xff0c;特此记录 解析 磁头不会停止旋转 单缓冲区&#xff1a;读取完一个物理块后&#xff0c;只有等该物理块处理完成&#xff0c;才能继续读取后面的物理块。 最长时间 摆放顺序如下&#xff1a; 从 R0 开始…

【JavaEE】JavaScript webAPI的基本知识

JavaScript Web API 文章目录 JavaScript Web APIwebAPI背景DOMDOM树 获取元素querySelectorquerySelectorAll 事件初识键盘事件onkeydownonkeypressonkeyup 操作元素获取/修改元素内容1.innerText2.innerHTML 获取/修改元素属性获取/修改表单元素属性获取/修改样式属性行内样式…