【C++ 】for 循环系统深入解析与实现法比较


在这里插入图片描述

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]
本文专栏: C++

文章目录

  • 💯前言
  • 💯for 循环的基本语法格式
    • 语法格式:
      • 格式一:单行语句的 for 循环
      • 格式二:多行语句的 for 循环
      • 循环流程图
      • 实例代码
    • for 循环中变量初始化的作用域问题
      • 情况一:在循环外部声明变量
      • 情况二:在 for 循环内部初始化变量
  • 💯for 循环和 while 循环的比较
    • while 循环结构
    • for 与 while 比较列表
    • 示例比较
      • for 循环实现
      • while 循环实现
  • 💯小结


在这里插入图片描述


💯前言

  • C++ 中的循环是一种非常重要的操作,它可以进行一次或多次并重复地执行指定代码。在 C++ 中,主要有三种循环:for 循环,while 循环,和 do-while 循环。其中,for 循环因其简洁和统一的设计,在实际工程中被应用地最为常见。本文将精练地进行清晰介绍,包括 for 循环的基本语法、实例练习,深层解析其操作流程以及与其它循环的区别
    此外,我也将通过进一步的例子和推广,展示如何选择适合实际需求的循环实现法。这里的所有内容都统为实用提供大量应用和解释。下面将从基本开始,清晰地讲解 for 循环的相关内容,最后进行比较和总结。
    C++ 参考手册
    在这里插入图片描述

💯for 循环的基本语法格式

在 C++ 中,for 循环是一种统一的循环符号。它能够将循环必要的三个部分:初始化、条件判断和变量调整,集为一体,让代码更加简洁和可读。


语法格式:


格式一:单行语句的 for 循环

for (表达式1; 表达式2; 表达式3)语句;
  • 表达式1: 用于循环变量的初始化,只执行一次。
  • 表达式2: 用于判断循环是否继续,在每次循环开始前进行判断。
  • 表达式3: 用于调整循环变量,在每次循环结束后执行。

格式二:多行语句的 for 循环

for (表达式1; 表达式2; 表达式3)
{语句1;语句2;// ……
}
  • 如果 for 循环的体内包含多条语句,将运行一块语句池,必须用大括号 {} 包裱。

循环流程图

  1. 执行 表达式1(初始化),只运行一次。
  2. 判断 表达式2(条件),若为真,进入循环体执行;否则结束循环。
  3. 执行 for 循环体中的语句。
  4. 执行 表达式3(变量调整),回到步骤2,继续判断,直至条件为假时结束。

实例代码

以输出 1 ~ 10 的数字为例:

#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 10; i++) {cout << i << " ";}return 0;
}

在这里插入图片描述

输出结果:

1 2 3 4 5 6 7 8 9 10

for 循环中变量初始化的作用域问题

for 循环中变量的初始化只在循环的语句块中生效。通常两种情况:


情况一:在循环外部声明变量

#include <iostream>
using namespace std;int main() {int i = 0; // 外部声明for (i = 1; i <= 10; i++) {cout << i << " " << endl;}cout << endl;cout << "循环结束后 i = " << i << endl;return 0;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a4559b72b5024eedb33a2d5380e622a1.png#pic_center)

输出:

1 2 3 4 5 6 7 8 9 10
循环结束后 i = 11

这种情况中,变量 i 在循环结束后依然可以使用。


情况二:在 for 循环内部初始化变量

#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 10; i++) {cout << i << " ";}// cout << i; // 错误:没有声明变量 ireturn 0;
}

在这里插入图片描述

说明:

  • 在 for 循环内部初始化的变量,只在 for 循环的语句块中有效。
  • 这种方式更常用,可以避免变量冒泡,减少与其他变量冲突的情况。

💯for 循环和 while 循环的比较

在 C++ 中,forwhile 循环都可以实现相同的循环功能,但它们的语法结构和适用场景略有区别,以下是两者的比较。


while 循环结构

基本格式如下:

int i = 1;          // 初始化
while (i <= 10) {   // 判断条件cout << i << " ";i++;            // 调整变量
}

运行流程如下:

  1. 初始化变量 i 为 1。
  2. 判断条件 i <= 10,为真则进入循环体。
  3. 执行循环体内的语句:输出 i 的值。
  4. 调整变量 i++,回到步骤2,继续判断。

for 与 while 比较列表

特性for 循环while 循环
语法结构初始化、判断、调整集为一体初始化、判断、调整分散
代码清晰度结构简洁,适合次数矩式循环循环部分比较分散,适合条件控制
适用场景适合已知次数的循环适合基于条件控制的循环

示例比较


for 循环实现

#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 10; i++) {cout << i << " ";}return 0;
}

在这里插入图片描述


while 循环实现

#include <iostream>
using namespace std;int main() {int i = 1;while (i <= 10) {cout << i << " ";i++;}return 0;
}

在这里插入图片描述


输出结果相同:

1 2 3 4 5 6 7 8 9 10

💯小结

  • 在这里插入图片描述
    for 循环:适合已知循环次数的场景,代码结构简洁统一。
  • while 循环:适合基于条件判断的场景,灵活性较高。
  • 根据实际需求选择合适的循环结构,使代码更清晰易维护

通过理解 for 循环的基本语法、作用域规则及与 while 循环的比较,可以帮助开发者在实际编程中高效解决问题

本文深入解析了 C++ 中 for 循环的基本语法、操作流程及其在实际开发中的应用。通过实例代码,详细说明了如何使用 for 循环进行变量初始化、条件判断及变量调整。同时,讨论了变量作用域的影响,为开发者提供了规范化代码的建议。这种紧凑、统一的循环结构,使得 for 循环在已知循环次数的场景下更为高效和直观

此外,本文还对比了 for 循环与 while 循环的结构特点和适用场景。
for 循环适合次数明确的任务,而 while 循环更灵活,常用于基于条件的动态循环。通过实例对比,明确两者的使用差异,有助于开发者根据需求选择合适的循环方式,从而提高代码的效率和可读性。


在这里插入图片描述


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

相关文章

Vue3安装配置、开发环境搭建(组件安装卸载)(图文详细)

Vue3安装配置、开发环境搭建(组件安装卸载)&#xff08;图文详细&#xff09; 本文目录&#xff1a; 一、vue的主要安装使用方式 二、node.js安装和配置 1、支持运行 Node.js的平台 2、Node.js 版本开发发布时间表&#xff08;日期可能会有变化&#xff09; 3、下载安装n…

Oracle 适配 OpenGauss 数据库差异语法汇总

背景 国产化进程中&#xff0c;需要将某项目的数据库从 Oracle 转为 OpenGauss &#xff0c;项目初期也是规划了适配不同数据库的&#xff0c;MyBatis 配置加载路径设计的是根据数据库类型加载指定文件夹的 xml 文件。 后面由于固定了数据库类型为 Oracle 后&#xff0c;只写…

Vue进阶之状态管理,解锁项目开发超能力

一、概念 状态管理是指对应用程序中状态的管理。在软件领域&#xff0c;状态是指在某个特定时刻&#xff0c;应用程序的数据和行为表现。 以一个简单的购物网站为例&#xff0c;购物车中的商品列表、用户的登录状态等都是状态。状态管理主要涉及这些状态如何被存储、更新和在…

操作系统(16)I/O软件

前言 操作系统I/O软件是负责管理和控制计算机系统与外围设备&#xff08;例如键盘、鼠标、打印机、存储设备等&#xff09;之间交互的软件。 一、I/O软件的定义与功能 定义&#xff1a;I/O软件&#xff0c;也称为输入/输出软件&#xff0c;是计算机系统中用于管理和控制设备与主…

游戏AI实现-寻路算法(Dijkstra)

戴克斯特拉算法&#xff08;英语&#xff1a;Dijkstras algorithm&#xff09;&#xff0c;又称迪杰斯特拉算法、Dijkstra算法&#xff0c;是由荷兰计算机科学家艾兹赫尔戴克斯特拉在1956年发现的算法。 算法过程&#xff1a; 1.首先设置开始节点的成本值为0&#xff0c;并将…

CTFshow-文件上传(Web151-170)

CTFshow-文件上传(Web151-170) 参考了CTF show 文件上传篇&#xff08;web151-170&#xff0c;看这一篇就够啦&#xff09;-CSDN博客 Web151 要求png&#xff0c;然后上传带有一句话木马的a.png&#xff0c;burp抓包后改后缀为a.php&#xff0c;然后蚁剑连接&#xff0c;找fl…

Unity超优质动态天气插件(含一年四季各种天气变化,可用于单机局域网VR)

效果展示&#xff1a;https://www.bilibili.com/video/BV1CkkcYHENf/?spm_id_from333.1387.homepage.video_card.click 在你的项目中设置enviro真的很容易&#xff01;导入包裹并按照以下步骤操作开始的步骤&#xff01; 1. 拖拽“EnviroSky”预制件&#xff08;“environme…

Windows环境下安装和使用Open Interpreter(没有OpenAI API key也可以运行)

文章目录 Open Interpreter简介安装运行本地模型运行model i退出 Open Interpreter简介 相比于其他的模型&#xff0c;Open Interpreter最大的亮点就是能够在模型上直接自动运行和调试代码。而其他的模型则需要在生成代码之后&#xff0c;复制到对应的本地IDE上运行、调试。如…

Ubuntu系统安装MySQL

使用在线方式安装 更新软件包 sudo apt update安装MySQL服务器 # 查看可使用的安装包 sudo apt search mysql-server安装指定版本的MySQL # 安装指定版本 sudo apt install -y mysql-server-8.0如果不加-y 会在安装过程中&#xff0c;系统将提示你设置MySQL的root密码。记住…

最大质因子序列

最大质因子序列 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 任意输入两个正整数m, n (1 < m < n < 5000)&#xff0c;依次输出m到n之间每个数的最大质因子&#xff08;包括m和n&#xff1b;…

Netcat:网络中的瑞士军刀

免责声明&#xff1a;使用本教程或工具&#xff0c;用户必须遵守所有适用的法律和法规&#xff0c;并且用户应自行承担所有风险和责任。 文章目录 一、引言二、简述三、Netcat功能&#xff1f;四、参数选项五、Netcat 的常见功能六、高级用法多连接处理创建简单的代理 七、Netc…

GhostRace: Exploiting and Mitigating Speculative Race Conditions-记录

文章目录 论文背景Spectre-PHT&#xff08;Transient Execution &#xff09;Concurrency BugsSRC/SCUAF和实验条件 流程Creating an Unbounded UAF WindowCrafting Speculative Race ConditionsExploiting Speculative Race Conditions poc修复 论文 https://www.usenix.org/…

VTK智能指针

文章目录 一、VTK中的New函数二、引用计数三、VTK中的智能指针四、运行时类型识别 一、VTK中的New函数 在 VTK&#xff08;Visualization Toolkit&#xff09;中&#xff0c;New() 函数是创建 VTK 对象的主要方式。它是每个 VTK 类的一个静态方法&#xff0c;专门用于分配和初…

ai绘图丨中国新年春节背景第一弹(附关键词

一、引言 随着春节的临近&#xff0c;节日的氛围愈发浓厚。在电商、社交媒体宣传或者个人创作等诸多场景中&#xff0c;一张精美的中国新年春节背景图都能为作品增色不少。如今&#xff0c;借助 AI 绘图技术&#xff0c;我们能够轻松地创作出独具特色的春节背景图。本文将以 “…

计算机学习

不要只盯着计算机语言学习&#xff0c;你现在已经学习了C语言和Java&#xff0c;暑假又规划学习Python&#xff0c;最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言&#xff0c;沿着这个方向继续往后学习知识就行。计算机语言是学不完的&#xff0c;而未来就…

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现 最后设置首页的推荐模块&#xff0c;参考模板如下图所示。 一、首页热门推荐模块的实现 对于热门推荐模块&#xff0c;先有上面的小标题栏&#xff0c;这里的标题栏也有一个小图标&#xff0c;首先从“百度图库”中…

电子应用设计方案-58:智能沙发系统方案设计

智能沙发系统方案设计 一、引言 智能沙发作为一种融合了舒适与科技的家居产品&#xff0c;旨在为用户提供更加便捷、舒适和个性化的体验。本方案将详细介绍智能沙发系统的设计思路和功能实现。 二、系统概述 1. 系统目标 - 实现多种舒适的姿势调节&#xff0c;满足不同用户的…

【vue-codemirror】Vue中强大的编辑器插件--vue-codemirror

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Linux下学【MySQL】所有常用类型详解( 配实操图 通俗易懂 )

每日激励&#xff1a;“当你觉得你会幸运时&#xff0c;幸运就会眷顾你&#xff0c;所以努力吧&#xff0c;只要你把事情做好&#xff0c;并觉得你会幸运&#xff0c;你将会变得幸运且充实。” 绪论​&#xff1a; 本章继续学习MySQL的知识&#xff0c;本章主要讲到mysql中的所…

你了解网络层的 ICMP 吗?

你了解网络层的 ICMP 吗&#xff1f; 一. 什么是 ICMP二. ICMP 的工作原理三. ICMP 的结构四. ICMP 的常见应用五. ICMP 的局限性与安全性六. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神…