循环结构(一)——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语句【互三互三】
文章目录 🍁 引言 🍁 一、语句格式 🍁 二、语句执行过程 🍁 三、语句格式举例 🍁四、例题 👉【例1】 🚀示例代码: 👉【例2】 【方法1】 🚀示例代码: 【方法2】…...
【深度学习基础】MacOS PyCharm连接远程服务器
目录 一、需求描述二、建立与服务器的远程连接1. 新版Pycharm的界面有什么不同?2. 创建远程连接3. 建立本地项目与远程服务器项目之间的路径映射4.设置保存自动上传文件 三、设置解释器总结 写在前面,本人用的是Macbook Pro, M3 MAX处理器&am…...
微调Qwen2大语言模型加入领域知识
目录 试用Qwen2做推理安装LLaMA-Factory使用自有数据集微调Qwen2验证微调效果 试用Qwen2做推理 参考:https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html from transformers import AutoModelForCausalLM, AutoTokenizer device "cuda…...
【Linux】内核文件系统系统调用流程摸索
内核层可以看到当前调用文件处理的进程ID 这个数据结构是非常大的: 我们打印的pid,tgid就是从这里来的,然后只需要找到pid_t的数据类型就好了。 下图这是运行的日志信息: 从上述日志,其实我也把write的系统调用加了入口的打印信…...
【HZHY-AI300G智能盒试用连载体验】文档资料
感谢电子发烧友和北京合众恒跃科技有限公司提供的的产品试用机会。 HZHY-AI300G工业级国产化智盒,采用RK3588工业级芯片组适应-40℃-85℃工业级宽温网关。 以前测试过其他厂家的RK3568产品,对瑞芯微的工具也比较了解。 在合众恒跃的网站上可以看到基本…...
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 安全性测试:最佳实践与技巧
在当今快速发展的数字化世界中,API(应用程序编程接口)已成为软件系统之间通信的桥梁。然而,随着API使用的增加,安全风险也随之上升。本文将详细介绍如何在 Postman 中进行 API 的安全性测试,帮助开发者和测…...
PTC可复位保险丝 vs 传统型保险丝:全面对比分析
PTC可复位保险丝,又称为自恢复保险丝、自恢复熔断器或PPTC保险丝,是一种电子保护器件。它利用材料的正温度系数效应,即电阻值随温度升高而显著增加的特性,来实现电路保护。 当电路正常工作时,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.搭建(DDDRPC)架构 DDD——微服务架构(微服务是对系统拆分的方式) (Domain-Driven Design 领域驱动设计) DDD与MVC同属微服务架构 是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建…...
我的AI音乐梦:ChatGPT帮我做专辑
🌈个人主页:前端青山 🔥系列专栏:AI篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来ChatGPT帮我做音乐专辑 嘿,朋友们! 想象一下,如果有个超级聪明的机器人能帮你写…...
新手-前端生态
文章目录 新手的前端生态一、概念的理解1、脚手架2、组件 二、基础知识1、HTML2、css3、JavaScript 三、主流框架vue3框架 四、 工具(特定框架)1、uinapp 五、组件库()1、uView如何在哪项目中导入uView 六、应用(各种应…...
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语句集合,它被存储在数据库中,可以通过指定存储过程的名称并给出相应的参数来调用。使用存储过程可以提高数据库操作的效率,减少网络传输量,并且可以封装复杂的逻辑。 编…...
Count数据转换为TPM数据方法整理-常规方法、DGEobj.utils和IOBR包
在正式分析之前,对于数据的处理是至关重要的,这种重要性是体现在很多方面,其中有一点是要求分析者采用正确的数据类型。 对于芯片数据,原始数据进行log2处理之后可以进行很多常见的分析,比如差异分析、热图、箱线图、…...
简易限流实现
需求描述 写一个1秒两个的限流工具类,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的例子,多绘制几种类型的图像 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...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
