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

循环结构(一)——for语句【互三互三】


文章目录

🍁 引言

🍁 一、语句格式

🍁 二、语句执行过程

🍁 三、语句格式举例

🍁四、例题

👉【例1】

🚀示例代码:

👉【例2】

【方法1】

🚀示例代码:

【方法2】

🚀示例代码:

👉【例3】

【方法1】

🚀示例代码:

【方法2】

🚀示例代码:

👉【例4】

【分析】

🚀示例代码:

【说明】

🍁总结 

🍁备注


🚀欢迎互三👉程序猿方梓燚 💎💎
🚀所属专栏:C++教程💎

🚀关注博主,后期持续更新系列文章

🚀如果有错误感谢请大家批评指出,及时修改

🚀感谢大家点赞👍收藏评论✍ 

 

 

🍁 引言

  • 在 C++的编程世界中,循环结构如同一个个精巧的齿轮,驱动着程序高效而有序地运行。其中,for 语句无疑是最为常用和强大的循环工具之一。

  • 当我们面对需要重复执行的任务时,for 语句宛如一位可靠的伙伴,为我们提供了简洁、灵活且精确的控制方式。它使得我们能够有条不紊地处理大量的数据,执行重复性的操作,从而节省时间和精力,提高编程的效率。

  • 无论是遍历数组中的元素、计算一系列数值的总和,还是实现复杂的迭代算法,for 语句都展现出了其独特的魅力和强大的功能。

  • 通过深入理解和熟练运用 for 语句,我们将开启编程效率提升的大门,能够更加优雅地解决问题,构建出更为强大和高效的 C++程序。

  • 接下来,让我们一同深入探索 for 语句的奥秘,领略其在 C++编程中的精彩表现。

🍁 一、语句格式

格式1:

for(控制变量初始化表达式;条件表达式;增量表达式)语句1;

说明:语句1是for循环语句的循环体,它将在满足条件的情况下被重复执行。

格式2:

for(控制变量初始化表达式;条件表达式;增量表达式){语句1;语句2;…………
}

说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式

程序风格提示:写for循环语句时,循环体的语句相对于for缩进两格。

🍁 二、语句执行过程

for语句的执行过程可由以下4步来描述。

(1)执行“控制变量初始化语句”,使控制变量获得一个初值。

(2)判断控制变量是否满足“条件表达式”,若满足条件则执行一遍循环体,否则结束整个for语句,继续执行for循环下面的句子。

(3)根据增量表达式,计算出控制变量所得到的新值

(4)自动转到第(2)步。

🍁 三、语句格式举例

(1)将控制变量从1变到100,增量为1

for(i=1;i<=100;++i)

(2)将控制变量从100变到1,增量为-1

for(i=100;i>=1;--i)

(3)控制变量从7变到77,增量为7  

for(i=7;i<=77;i+=7)

(4)控制变量从20变到2,增量为-2

for(int i=20;i>=2;i-=2)

(5)按所示数列改变控制变量值:99、88、77、66、55、44、33、22、11、0,增量为-11

for(int j=99;j>=0;j-=11)

(6)控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。

 

for(int i=1,j=2;i<=99&&j<=100;i+=2,j+=2)

需要说明的是:可以在for循环“ 控制变量初始化语句”中声明变量(如上面最后3个例子),这些变量只在for循环结构中有效,离开了该for结构,变量就无效了。

🍁四、例题

👉【例1】

利用for循环,计算输出1+2+…+100的和

🚀示例代码:
#include <iostream>
using namespace std;
int main () {int sum = 0;for (int i = 1; i <= 100 ; ++i) {sum += i;  //i初始值1,终值为100,每次增量为1}cout << sum;return 0;
}
👉【例2】

输出1—100之间所有偶数。

【方法1】

可以想到对于1-100之间的100个数字i,直接重复进行判断,如果i是偶数,则输出i的值。

🚀示例代码:
#include <iostream>
using namespace std;
int main() {for (int i = 1; i <= 100; i++) { //对于1至100之间的每个数,都重复操作if (i % 2 == 0) { //如果i为偶数,则输出i的值cout << i << " ";} }return 0;
}

程序中,将1-100之间的所有数字都列举出来,然后一一判断,符合偶数条件的,就输出。这种思想,本质上是穷举。穷举法保证在求解的过程中,所有可能解都会判断到,不会丢解。当然缺点就是有时候效率不高。

【方法2】

在上述分析的基础上,再进一步分析:我们都知道,相邻偶数之间的差值为2,所以,我们还可以设置变量的初值为2,增量为2的for循环,使得循环次数减少为50次。

🚀示例代码:
#include <iostream>
using namespace std;
int main() {for (int i = 2; i <= 100; i += 2) { //i初值2,终值100,每次增量为2cout << i << " ";      //输出i的值}return 0;
}
👉【例3】

利用for循环,分别计算1—100中奇数的和、偶数的和。

【方法1】

根据例4.2的分析,很容易找到所有的偶数和奇数,继而计算其和。假设用变量sum1和sum2分别存放偶数与奇数和,累加就是在sum1或sum2的基础上,加上一个数字,改变累加变量的值;再加上一个数字,改变累加变量的值;......;如此重复下去。

🚀示例代码:
#include <iostream>
using namespace std;
int main() {int i, sum1 = 0, sum2 = 0; //sum1、sum2分别偶数和,奇数和,初始化为0for (i = 1; i <= 100; i++) { //i取1至100之间的每个整数,都重复操作if (i % 2 == 0) {sum1 += i;      //偶数累加到sum1中} else {sum2 += i;                 //奇数累加到sum2中}}cout << sum1 << "  " << sum2;     //输出偶数和、奇数和return 0;
}
【方法2】

偶数从2开始每次递增2,奇数从1开始每次递增2,for语句的循环变量初始化和循环变量增量两部分都可以使用逗号语句序列。

🚀示例代码:
#include <iostream>
using namespace std;
int main() {int i, j, sum1 = 0, sum2 = 0;for (i = 2, j = 1; i <= 100; i += 2, j += 2)  { //生成偶数和奇数的初始值sum1 += i;                     //偶数i累加到sum1中sum2 += j;                     //奇数j累加到sum2中}cout << sum1 << "  " << sum2;    //输出偶数和、奇数和return 0;
}
👉【例4】

利用for循环计算n!的值。

分析

n!=1*2*3…*n

🚀示例代码:
#include <cstdio>
using namespace std;
int main () {long long s;       int n;             //n不能定义为long long,否则for语句死循环s = 1;scanf("%d", &n);for (int i = 1; i <= n ; ++i) //若s定义为int,当n=13时s的值就溢出了s *= i;printf("%lld\n", s);      //低版本也可用printf("%I64d\n",s)return 0;
}
【说明】
  • 当n>=13时,s值超过了int类型的表示范围。还有一种比int更大的类型,称为long long,它的表示范围是-263~263-1,比-1019~1019略窄,而我们一直使用的int范围是-231~231-1,只比-2*109~2*109略宽。    
  • 输入输出long long也可以借助于printf和scanf语句,但对应的占位符却是和平台与编译器相关的:在linux中,gcc很统一的用%lld;在windows中,MinGW的gcc和VC6可用%I64d;高版本编译器下windows可以使用%lld。

🍁总结 

有不懂的地方可以si我,和我一起学习C++吧。

🍁备注

还没有下载DEV-C++的小伙伴们可以私我拿到免费安装包

相关文章:

循环结构(一)——for语句【互三互三】

文章目录 &#x1f341; 引言 &#x1f341; 一、语句格式 &#x1f341; 二、语句执行过程 &#x1f341; 三、语句格式举例 &#x1f341;四、例题 &#x1f449;【例1】 &#x1f680;示例代码: &#x1f449;【例2】 【方法1】 &#x1f680;示例代码: 【方法2】…...

【深度学习基础】MacOS PyCharm连接远程服务器

目录 一、需求描述二、建立与服务器的远程连接1. 新版Pycharm的界面有什么不同&#xff1f;2. 创建远程连接3. 建立本地项目与远程服务器项目之间的路径映射4.设置保存自动上传文件 三、设置解释器总结 写在前面&#xff0c;本人用的是Macbook Pro&#xff0c; M3 MAX处理器&am…...

微调Qwen2大语言模型加入领域知识

目录 试用Qwen2做推理安装LLaMA-Factory使用自有数据集微调Qwen2验证微调效果 试用Qwen2做推理 参考&#xff1a;https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html from transformers import AutoModelForCausalLM, AutoTokenizer device "cuda…...

【Linux】内核文件系统系统调用流程摸索

内核层可以看到当前调用文件处理的进程ID 这个数据结构是非常大的&#xff1a; 我们打印的pid,tgid就是从这里来的&#xff0c;然后只需要找到pid_t的数据类型就好了。 下图这是运行的日志信息&#xff1a; 从上述日志&#xff0c;其实我也把write的系统调用加了入口的打印信…...

【HZHY-AI300G智能盒试用连载体验】文档资料

感谢电子发烧友和北京合众恒跃科技有限公司提供的的产品试用机会。 HZHY-AI300G工业级国产化智盒&#xff0c;采用RK3588工业级芯片组适应-40℃-85℃工业级宽温网关。 以前测试过其他厂家的RK3568产品&#xff0c;对瑞芯微的工具也比较了解。 在合众恒跃的网站上可以看到基本…...

Linux--深入理与解linux文件系统与日志文件分析

目录 一、文件与存储系统的 inode 与 block 1.1 硬盘存储 1.2 文件存取--block 1.3 文件存取--inode 1.4 文件名与 inode 号 ​编辑 1.5 查看 inode 号码方法 1.6 Linux 系统文件的三个主要的时间属性 1.7 硬盘分区结构 1.8 访问文件的简单了流程 1.9 inode 占用 1.…...

Postman 中的 API 安全性测试:最佳实践与技巧

在当今快速发展的数字化世界中&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为软件系统之间通信的桥梁。然而&#xff0c;随着API使用的增加&#xff0c;安全风险也随之上升。本文将详细介绍如何在 Postman 中进行 API 的安全性测试&#xff0c;帮助开发者和测…...

PTC可复位保险丝 vs 传统型保险丝:全面对比分析

PTC可复位保险丝&#xff0c;又称为自恢复保险丝、自恢复熔断器或PPTC保险丝&#xff0c;是一种电子保护器件。它利用材料的正温度系数效应&#xff0c;即电阻值随温度升高而显著增加的特性&#xff0c;来实现电路保护。 当电路正常工作时&#xff0c;PTC保险丝呈现低阻态&…...

深入了解Rokid UXR2.0 SDK内置的Unity AR Glass开发组件

本文将了解到Rokid AR开发组件 一、RKCameraRig组件1.脚本属性说明2.如何使用 二、PointableUI组件1.脚本属性说明2.如何使用 三、PointableUICurve组件1.脚本属性说明2.如何使用 四、RKInput组件1.脚本属性说明2.如何使用 五、RKHand组件1.脚本属性说明2.如何使用3.如何禁用手…...

Lottery 分布式抽奖(个人向记录总结)

1.搭建&#xff08;DDDRPC&#xff09;架构 DDD——微服务架构&#xff08;微服务是对系统拆分的方式&#xff09; &#xff08;Domain-Driven Design 领域驱动设计&#xff09; DDD与MVC同属微服务架构 是由Eric Evans最先提出&#xff0c;目的是对软件所涉及到的领域进行建…...

我的AI音乐梦:ChatGPT帮我做专辑

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;AI篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来ChatGPT帮我做音乐专辑 嘿&#xff0c;朋友们&#xff01; 想象一下&#xff0c;如果有个超级聪明的机器人能帮你写…...

新手-前端生态

文章目录 新手的前端生态一、概念的理解1、脚手架2、组件 二、基础知识1、HTML2、css3、JavaScript 三、主流框架vue3框架 四、 工具&#xff08;特定框架&#xff09;1、uinapp 五、组件库&#xff08;&#xff09;1、uView如何在哪项目中导入uView 六、应用&#xff08;各种应…...

C#中的类

声明类 public class MyClass{ ​} 注意 类里面 的属性可以输入prop之后再按Tab键 然后再按Tab进行修改属性的名称等等 Random rnd new Random(); int arnd.Next(3); 范围是0-3的整数 但是不包含3 Random rnd new Random(); int arnd.Next(2,3); 只包含2一个数 int?[]…...

探索数据库编程:基础与进阶之存储函数

引言❤️❤️ 数据库存储过程是一组为了执行特定功能的SQL语句集合&#xff0c;它被存储在数据库中&#xff0c;可以通过指定存储过程的名称并给出相应的参数来调用。使用存储过程可以提高数据库操作的效率&#xff0c;减少网络传输量&#xff0c;并且可以封装复杂的逻辑。 编…...

Count数据转换为TPM数据方法整理-常规方法、DGEobj.utils和IOBR包

在正式分析之前&#xff0c;对于数据的处理是至关重要的&#xff0c;这种重要性是体现在很多方面&#xff0c;其中有一点是要求分析者采用正确的数据类型。 对于芯片数据&#xff0c;原始数据进行log2处理之后可以进行很多常见的分析&#xff0c;比如差异分析、热图、箱线图、…...

简易限流实现

需求描述 写一个1秒两个的限流工具类&#xff0c;2r/s 使用semaphore 代码实现-类似令牌桶算法 public class LimitHelper {private int maxLimit;private Semaphore semaphore;private int timeoutSeconds;public LimitHelper(int maxLimit, int timeoutSeconds) {this.max…...

用Qwt进行图表和数据可视化开发

目录 Qwt介绍 示例应用场景 典型QWT开发流程 举一些Qwt的例子&#xff0c;多绘制几种类型的图像 1. 绘制折线图 (Line Plot) 2. 绘制散点图 (Scatter Plot) 3. 绘制柱状图 (Bar Plot) 4. 绘制直方图 (Histogram) Qwt介绍 QWT开发主要涉及使用QWT库进行图表和数据可视化…...

sqlalchemy使用with_entities返回指定数据列

sqlalchemy使用with_entities返回指定数据列 在 SQLAlchemy 中,with_entities 方法用于指定查询语句返回的实体(Entity)或列(Column)。它允许你限制查询的返回结果,只包含你感兴趣的特定字段或实体 使用方法 假设有一个名为 User 的 SQLAlchemy 模型类,包含以下字段:…...

express

文章目录 🟢 Express⭐️ 1.初始Express✨安装✨使用Express 搭建一台服务器⭐️2.Express-基本路由✨1.使用字符串模式的路由路径示例:✨2.使用正则表达式的路由路径示例:✨3.中间件浅试(demo)⭐️3.Express-中间件✨1.应用级中间件✨2.路由级中间件✨3.错误处理中间件✨4…...

HTML网页大设计-家乡普宁德安里

代码地址: https://pan.quark.cn/s/57e48c3b3292...

深度学习:从数据采集到模型测试的全面指南

摘要 随着人工智能和大数据技术的迅猛发展&#xff0c;深度学习已成为解决复杂问题的有力工具。然而&#xff0c;从项目启动到模型部署&#xff0c;包含了数据处理和模型研发的多个环节&#xff0c;每个环节的细致和严谨性直接决定了最终模型的性能和可靠性。本论文详细探讨了…...

Excel第29享:基于sum嵌套sumifs的多条件求和

1、需求描述 如下图所示&#xff0c;现要统计12.17-12.23这一周各个人员的“上班工时&#xff08;a1&#xff09;”。 下图为系统直接导出的工时数据明细样例。 2、解决思路 首先&#xff0c;确定逻辑&#xff1a;“对多个条件&#xff08;日期、人员&#xff09;进行“工时”…...

Elasticsearch:Node.js ECS 日志记录 - Morgan

这是之前系列文章&#xff1a; Elasticsearch&#xff1a;Node.js ECS 日志记录 - Pino Elasticsearch&#xff1a;Node.js ECS 日志记录 - Winston 中的第三篇文章。在今天的文章中&#xff0c;我将描述如何使用 Morgan 包针对 Node.js 应用进行日子记录。此 Morgan Node.j…...

ChatGPT对话:Python程序自动模拟操作网页,无法弹出下拉列表框

【编者按】需要编写Python程序自动模拟操作网页。编者有编程经验&#xff0c;但没有前端编程经验&#xff0c;完全不知道如何编写这种程序。通过与ChatGPT讨论&#xff0c;1天完成了任务。因为没有这类程序的编程经验&#xff0c;需要边学习&#xff0c;边编程&#xff0c;遇到…...

Unity 之 抖音小游戏集成排行榜功能详解

Unity 之 抖音小游戏集成排行榜功能详解 一,前言1.1 为游戏设计利于传播的元素​2.2 多人竞技、社交传播​二,集成说明2.1 功能介绍2.2 完整代码2.3 效果展示三,发现的问题和迭代计划一,前言 对于 Unity 开发者而言,在开发抖音小游戏时集成排行榜功能是提升游戏社交性和玩…...

【学习笔记】Redis学习笔记——第13章 客户端

第13章 客户端 redisServer通过clients链表保存全部客户端的状态信息。 13.1 客户端属性 13.1.1 套接字描述符 fd&#xff1a;-1时伪客户端&#xff0c;载入AOF文件或Lua脚本。 13.1.2 名字 默认无客户端名&#xff0c;可以通过SETNAME命令设置。 13.1.3 标志 flags&am…...

Android中的JSON解析:从基础到实践

在Android应用开发中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;是最常用的数据交换格式之一&#xff0c;因其轻量级、易读性强以及跨平台兼容性好等特点&#xff0c;被广泛应用于服务器与客户端之间的数据传输。解析JSON数据对于提取和处理这些信息至…...

力扣-回溯法

何为回溯法&#xff1f; 在搜索到某一节点的时候&#xff0c;如果我们发现目前的节点&#xff08;及其子节点&#xff09;并不是需求目标时&#xff0c;我们回退到原来的节点继续搜索&#xff0c;并且把在目前节点修改的状态还原。 记住两个小诀窍&#xff0c;一是按引用传状态…...

240713_昇思学习打卡-Day25-LSTM+CRF序列标注(4)

240713_昇思学习打卡-Day25-LSTMCRF序列标注&#xff08;4&#xff09; 最后一天咯&#xff0c;做第四部分。 BiLSTMCRF模型 在实现CRF后&#xff0c;我们设计一个双向LSTMCRF的模型来进行命名实体识别任务的训练。模型结构如下&#xff1a; nn.Embedding -> nn.LSTM -&…...

python requests关闭https校验

python requests关闭https校验 import requests# 关闭SSL验证 requests.get(https://***.com, verifyFalse)...

服装网站建设平台分析/关键词网站推广

%%主程序theta0pi/10; %%初始角度&#xff0c;可以设置不同的值m1;k80;g9.8;l01; %%l0为弹簧原来长度ll0m*g/k; %%l为弹簧静止时长度[t,u1]ode45(thbfun,[0:0.005:15],[l0 0 theta0 0],[ ],l,k,m,g);[y1,x1]pol2cart(u1(:,3),u1(:,1));y1-y1;figureymaxmax(abs(y1));axis…...

做网站利润/优秀网页设计公司

前言微软今年推出了新版的 Microsoft Edge 浏览器&#xff0c;与原本 Win10 内置的 UWP 版完全不同。新版 Edge 和 Chrome 一样基于开源项目 Chromium&#xff0c;性能上应该是没问题的。虽然还没有发布正式版&#xff0c;但稳定测试版 Beta Channel 已经可以下载了。这几天我安…...

手机网站和电脑网站/脑白金网络营销

Spire.XLS是一款专业的Excel控件&#xff0c;无需安装微软Excel&#xff0c;也能拥有Excel的全套功能&#xff0c;能够为工厂智能化提供完善的Excel需求。【下载Spire.XLS最新试用版】组合图表是指在同一张图表中包含两种或以上样式的图表&#xff0c;我们在使用Excel分析数据时…...

08影院Wordpress/seo优化网站推广专员招聘

1、关于linux连网问题 今天发现要想使Windows下面的linux连上网。还有一种好方法&#xff0c;就是使用桥接模式&#xff1a; 以下设置为vmware默认设置&#xff0c;如果你想改用其他模式&#xff0c;请自己改正。 以下的设置不用改 取得主机IP地址&#xff0c;并ping 下PC机&am…...

做网站需要多少钱 做/东莞网站关键词优化排名

android西部牛仔横版跑酷冒险游戏源码Cowboy Runner&#xff0c;包含Buildbox和dEclipse工程文件&#xff0c;项目基于buildbox 2.2.8开发&#xff0c;支持关卡解锁和无限两种模式&#xff0c;兼容手机和平板电脑&#xff0c;支持AdMob广告&#xff0c;带声音开关、动画菜单、复…...

b2b网站建设方案长沙/企业网站营销的优缺点及案例

在springMVC配置文件中加上下面的这个静态资源路径映射就可以了 <mvc:resources mapping"/images/**/" location"classpath:/images/"/> 访问工程下的图片 http://localhost:9999/JXWorkApi/images/shear.png 我这个war包是JXWorkApi&#xff0c;i…...