C语言程序设计-[10] for语句循环结构

news2024/9/22 23:26:53

1、for语句循环结构定义

for语句循环结构的一般形式、流程图和执行过程如下:

注1:计算表达式2是循环的判定表达式。与前面一样,这个表达式可以是任意的,只要有值就行,遵循非0即真的原则。

注2:一个循环结构由四个要素构成:循环初始条件、循环判定条件、循环体和循环修正条件。循环初始条件就是循环结构的一些变量定义和初始化值设置,如上图计算表达式1。循环判定条件就是上图中的计算表达式2,即循环的判定表达式。循环体就是循环执行部分,如上图中的语句。循环修正条件就是为了进入下一轮循环,需要改变循环条件,如上图中的计算表达式3。

注3:for语句循环结构将表达式1、表达式2和表达式3全放在一块。但是,首轮循环执行顺序是表达式1、表达式2、循环体语句和表达式3,下轮循环执行顺序是表达式2、循环体语句和表达式3。

注4:表达式1、表达式2和表达式3都可以省略,但是两个;号不能省略。表达式1省略时,就需要将表达式1提到for语句的前面。表达式2省略时,就需要将表达式2以if语句的形式放在循环体中。表达式3省略时,就需要将表达式3放到循环体后面。

2、for语句循环结构示例

还是上面那个题目:求1+2+3+...+100的值。

根据上述定义和注解,我们对于这个问题,首先分析其个要素如下:

循环初始化条件:i=1, sum=0;  //从上面问题来看,主要有要加的数(第一个为1,即i=1)和加的结果(在加之前结果为0,即sum=0)。

循环判断条件:i<=100;  //从上面问题来看,要加的数是从1~100的,也就是小于等于100的数就要加起来,即i<=100。

循环体: sum+=i;  // 从上面问题来看,对于每一个从1开始且小于等于100的数都要加起来,即每个i都要加进sum中,即sum+=i。

循环修正条件: i++;   //从上面问题来看,每一个加进sum的数是变化的,所以i要+1,即i++。

有了这个四素,接下来就是套用for语句循环结构的一般形式就行,具体代码如下:

#include "stdio.h"

int main()
{
	int i, sum=0; // 变量定义、其他初始化值 
	for(i=1;i<=100;i++)     //循环初始条件、循环判定条件和循环修正条件  
	{
		sum+=i;     //循环体 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

注1:省略表达式1和表达式3时,代码如下:

#include "stdio.h"

int main()
{
	int i=1, sum=0; // 变量定义、循环初始条件 
	for(;i<=100;)     //循环判定条件
	{
		sum+=i;     //循环体
		i++;        //循环修正条件
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

这与while语句的结构形式对应。

注2:省略表达式2时,就需要使用if....break形式,后面学for语句的break时再讲。

3、与while语句循环结构可以相互转换

(1)while语句循环结构——变for语句循环结构

如下为while语句循环结构代码:

#include "stdio.h"

int main()
{
	int i=1, sum=0; //循环初始条件 
	while(i<=100)     //循环判定条件
	{
		sum+=i;     //循环体 
		i++;        //循环修正条件 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

转换为for语句循环结构只需要两步:

第一步,将while(i<=100)改为for(;i<=100;)。

第二步:将i=1和i++移至for(;i<=100;)中,改为for(i=1;i<=100;i++)。

得到代码如下:

#include "stdio.h"

int main()
{
	int i, sum=0; // 变量定义、其他初始化值 
	for(i=1;i<=100;i++)     //循环初始条件、循环判定条件和循环修正条件  
	{
		sum+=i;     //循环体 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

(2)  for语句循环结构——变while语句循环结构

#include "stdio.h"

int main()
{
	int i, sum=0; // 变量定义、其他初始化值 
	for(i=1;i<=100;i++)     //循环初始条件、循环判定条件和循环修正条件  
	{
		sum+=i;     //循环体 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

转换为while语句循环结构只需要两步:

第一步,将i=1移到for语句前面,而将i++移到for语句循环体后面。

第二步:将for(;i<=100;)改为while(i<=100)。

得到代码如下:

#include "stdio.h"

int main()
{
	int i=1, sum=0; //循环初始条件 
	while(i<=100)     //循环判定条件
	{
		sum+=i;     //循环体 
		i++;        //循环修正条件 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

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

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

相关文章

(源码)Springboot项目集成Activiti工作流,前端Vue,Bpmn.js

前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;一套完整并且实际运用在多套项目中的案例&#xff0c;满足日常业务流程审批需求。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;流行的前后端…

【Python】nn.nn.CircularPad1、2、3d函数和nn.ConstantPad1、2、3d函数详解和示例

前言 在深度学习中&#xff0c;尤其是在处理图像、音频或其他多维数据时&#xff0c;数据填充&#xff08;Padding&#xff09;是一个常见的操作。填充不仅可以保持数据的空间维度&#xff0c;还能在卷积操作中避免信息丢失。PyTorch提供了多种填充方式&#xff0c;其中nn.Cir…

unity 本地使用Json(全套)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、Json是什么&#xff1f;二、创建Json文件1.在线编辑并转实体类&#xff08;C#&#xff09;2.Json文件 三、解析Json并使用四、报错&#xff1a;JsonError&#xff1a;JsonExce…

使用frp内网穿透将个人主机上的MySQL发布到公网上,再通过python管理MySQL

目录 1.frp内网穿透部署 1.frp服务器 1.开放端口 2.上传软件包 3.解压 4.配置文件 2.frp客户端 1.上传软件包 2.配置文件 3.启动测试 1.浏览器查看服务器上连接的客户端数量 2.启动测试 2.MySQL安装 3.python3的安装使用 4.python管理MySQL 1.pip 2.pandas 3.p…

Axure 变量魔法:揭秘局部与全局的动态协同

前言 在 Axure 的世界中&#xff0c;变量是连接设计者意图与用户行为的桥梁。 局部变量&#xff0c;以其独特的灵活性和针对性&#xff0c;允许我们在特定情境下快速响应用户的操作。 而全局变量&#xff0c;则以其广泛的覆盖范围&#xff0c;为跨页面的一致性和连贯性提供了…

003集——C#数据类型 及大小端序转换——C#学习笔记

如需得到一个类型或一个变量在特定平台上的准确尺寸&#xff0c;可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸&#xff1a; using System;namespace DataTypeApplication {class Program{…

第26课 Scratch入门篇:乘坐公交车

乘坐公交车 故事背景&#xff1a; 又是一天结束了&#xff0c;在繁忙的城市里&#xff0c;深夜加班的上班族们挤上最后一班公交车&#xff0c;回到自己温馨的家 程序原理&#xff1a; 这节课最大的难度就是角色的设计以及角色的切换&#xff0c;背景的不停移动其实跟“猫咪跑…

论MATLAB强大的容错性

如何看待“低代码”开发平台的兴起&#xff1f; “低代码”让非专业人士也能快速构建应用程序。这种新兴技术正在挑战传统软件开发模式&#xff0c;引发了IT行业的广泛讨论。低代码平台是提高效率的利器&#xff0c;还是降低了编程门槛导致质量下降&#xff1f;它会改变开发者…

【报错解决】MySQL报错:sql_mode=only_full_group_by

文章目录 报错信息DataGrip 报错还原Navicat 报错还原 报错原因解决方案查看当前 sql mode方案一&#xff1a;临时解决方案二&#xff1a;永久解决方案三&#xff1a;使用 any_value() 或 group_concat()方案四&#xff1a;调整实现思路&#xff0c;避开 GROUP BY 使用 我是一名…

赛博朋克未来的第一个创想,低空飞行走近现实

英特尔创始人Andy Grove曾在《Only the Paranoid Survive》&#xff08;只有偏执狂才能生存&#xff09;这本书中提到一个观点&#xff1a;战略拐点往往发生在一个竞争因素&#xff0c;或者多个竞争因素突然变成原来10倍的时候&#xff0c;这时候往往预示着生意本质已经发生改变…

基于大数据的气象数据分析与可视化系统设计与实现【爬虫海量数据,LSTM预测】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍研究目的研究意义研究思路可视化展示每文一语 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 本课题主要针对气象数据进行分析以及可视化…

【CPP】slt-list由认识到简化模拟实现深度理解~

关于我&#xff1a; 睡觉待开机&#xff1a;个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想&#xff0c;就是为了理想的生活! 作者留言 PDF版免费提供&#xff1a;倘若有需要&#xff0c;想拿我写的博客进行学习和交流&#xff0c;可以私信我将免费提供PDF版。…

大数据信用报告查询哪家平台的比较好?

相信在搜索大数据信用的你&#xff0c;已经因为大数据信用不好受到了挫折&#xff0c;想详细了解一下自己的大数据信用&#xff0c;但是找遍了网络上的平台之后才发现&#xff0c;很多平台都只提供查询服务&#xff0c;想要找一个专业的平台查询和讲解很困难。下面本文就为大家…

【MongoDB】2.MongoDB导入文件

目录 一、MongoDB Compass 二、mongoimport 1、安装 2、语法&#xff1a; 3、可能出现的错误 三、MongoDB的GridFS 1、介绍 2、语法 一、MongoDB Compass 这个简单&#xff0c;不做赘述 二、mongoimport Mongoimport是一个用于导入数据到MongoDB的工具&#xff0c;默…

IWDG 溢出时间计算

iwdg看门狗溢出时间&#xff0c;就是之前算过的&#xff0c;但是再记录一次 计算过程如下&#xff1a;因为iwdg是独立看门狗&#xff0c;是用的LSI, 所以在f1系列lsi的时钟频率是40khz&#xff0c;也就是Fiwdg的频率是40khz&#xff0c;频率除以psc&#xff08;分频系数&#…

计算机毕业设计 校园志愿者管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

C++ | Leetcode C++题解之第331题验证二叉树的前序序列化

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isValidSerialization(string preorder) {int n preorder.length();int i 0;int slots 1;while (i < n) {if (slots 0) {return false;}if (preorder[i] ,) {i;} else if (preorder[i] #){slots--;i…

全面介绍 Apache Doris 数据灾备恢复机制及使用示例

引言 Apache Doris 作为一款 OLAP 实时数据仓库&#xff0c;在越来越多的中大型企业中逐步占据着主数仓这样的重要位置&#xff0c;主数仓不同于 OLAP 查询引擎的场景定位&#xff0c;对于数据的灾备恢复机制有比较高的要求&#xff0c;本篇就让我们全面的介绍和示范如何利用这…

红黑树的插入与删除

文章目录 红黑树概念红黑树的性质&#xff1a; 红黑树的插入操作情况一情况二情况三 小总结红黑树的验证红黑树的删除一.删除单孩子节点1. 删除节点颜色为黑色2. 删除颜色为红色 二. 删除叶子节点1. 删除节点为红色2.删除节点为黑色2.1兄弟节点为黑色&#xff0c;有孩子节点&am…

window下redis的安装

下载地址&#xff1a;https://github.com/tporadowski/redis/releases Windows下的.msi安装和.zip格式区别&#xff1a; .msi是Windows installer开发出来的程序安装文件&#xff0c;它可以让你安装&#xff0c;修改&#xff0c;卸载你所安装的程序。说白了.msi就是Windows in…