C++ 中的 for 循环语句教程
摘要
for
循环是 C++ 中最常用的循环结构之一,用于重复执行一段代码,直到满足特定条件。它特别适合在已知循环次数的情况下使用。本教程将详细介绍 for
循环的语法、用法以及一些常见示例。
1. for
循环的基本语法
for
循环的语法如下:
for (初始化; 条件; 更新) {// 循环体
}
-
初始化:在循环开始前执行一次,通常用于初始化循环变量。
-
条件:每次循环开始前检查的条件。如果条件为
true
,则执行循环体;如果为false
,则退出循环。 -
更新:每次循环结束后执行,通常用于更新循环变量。
-
循环体:需要重复执行的代码块。
2. for
循环的执行流程
-
执行初始化语句。
-
检查条件:
-
如果条件为
true
,执行循环体。 -
如果条件为
false
,退出循环。
-
-
执行更新语句。
-
重复步骤 2 和 3,直到条件为
false
。
3. 示例代码
示例 1:打印数字 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
解释:
-
int i = 1
:初始化循环变量i
为 1。 -
i <= 10
:检查i
是否小于或等于 10。 -
i++
:每次循环结束后将i
增加 1。
示例 2:计算 1 到 100 的和
#include <iostream>
using namespace std;int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}cout << "Sum of 1 to 100 is: " << sum << endl;return 0;
}
输出:
Sum of 1 to 100 is: 5050
解释:
-
sum += i
:将i
的值累加到sum
中。
示例 3:嵌套 for
循环(打印九九乘法表)
#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {cout << j << "x" << i << "=" << i * j << "\t";}cout << endl;}return 0;
}
输出:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
...
1x9=9 2x9=18 3x9=27 ... 9x9=81
解释:
-
外层循环控制行数,内层循环控制每行的列数。
4. for
循环的变体
4.1 省略初始化或更新部分
for
循环的三个部分(初始化、条件、更新)可以省略,但分号 ;
必须保留。
int i = 0;
for (; i < 5; ) {cout << i << " ";i++;
}
输出:
0 1 2 3 4
4.2 无限循环
如果省略条件部分,for
循环将成为一个无限循环:
for (;;) {cout << "This is an infinite loop!" << endl;
}
注意: 无限循环需要通过 break
语句或外部条件来退出。
4.3 范围 for
循环(C++11 引入)
范围 for
循环用于遍历容器(如数组、向量等)中的元素。
#include <iostream>
#include <vector>
using namespace std;int main() {vector<int> numbers = {1, 2, 3, 4, 5};for (int num : numbers) {cout << num << " ";}return 0;
}
输出:
1 2 3 4 5
5. for
循环中的变量
5.1 循环变量的作用域
在 for
循环中定义的变量(如 int i = 0
)的作用域仅限于循环内部。循环结束后,变量会被销毁。
#include <iostream>
using namespace std;int main() {for (int i = 0; i < 3; i++) {cout << "Inside loop: i = " << i << endl;}// cout << "Outside loop: i = " << i << endl; // 错误:i 未定义return 0;
}
注意:
-
如果在循环外部访问循环变量
i
,会导致编译错误,因为i
的作用域仅限于循环内部。
5.2 在循环外部定义变量
如果需要在循环外部使用循环变量,可以在循环外部定义变量。
#include <iostream>
using namespace std;int main() {int i; // 在循环外部定义变量for (i = 0; i < 3; i++) {cout << "Inside loop: i = " << i << endl;}cout << "Outside loop: i = " << i << endl; // 正确:i 仍然有效return 0;
}
输出:
Inside loop: i = 0
Inside loop: i = 1
Inside loop: i = 2
Outside loop: i = 3
5.3 多个变量的初始化与更新
for
循环可以同时初始化多个变量,并用逗号分隔。
#include <iostream>
using namespace std;int main() {for (int i = 0, j = 10; i < 5; i++, j--) {cout << "i = " << i << ", j = " << j << endl;}return 0;
}
输出:
i = 0, j = 10
i = 1, j = 9
i = 2, j = 8
i = 3, j = 7
i = 4, j = 6
解释:
-
int i = 0, j = 10
:同时初始化两个变量i
和j
。 -
i < 5
:循环条件,当i
小于5
时继续循环。 -
i++, j--
:每次循环结束后,i
增加1
,j
减少1
。
6.for循环与if嵌套
示例 :打印数字 1 到 10内的偶数
#include<iostream>
using namespace std;int main(){for(int i = 1;i <= 10;i++){if(i % 2 == 0){cout << i;}}return 0;
}
输出:
2 4 6 8 10
7. 常见问题与注意事项
-
循环变量的作用域:
-
在
for
循环中声明的变量(如int i
)的作用域仅限于循环体内。 -
如果需要在循环外使用循环变量,请在循环外声明。
-
-
避免死循环:
-
确保循环条件最终会变为
false
,否则会导致无限循环。
-
-
性能优化:
-
在循环中避免重复计算不变的值,可以将它们提到循环外。
-
8. 练习题
-
编写一个程序,使用
for
循环打印 1 到 100 之间的所有偶数。 -
编写一个程序,计算 1 到 100 之间所有奇数的和。
-
使用嵌套
for
循环打印一个 5x5 的星号(*
)矩形。
9. 总结
-
for
循环是 C++ 中用于重复执行代码的强大工具。 -
通过初始化、条件和更新部分,可以灵活控制循环的行为。
-
范围
for
循环简化了容器遍历的代码。 -
熟练掌握
for
循环是学习 C++ 编程的重要一步。
希望本教程对你理解和使用 for
循环有所帮助!
相关文章:
C++ 中的 for 循环语句教程
摘要 for 循环是 C 中最常用的循环结构之一,用于重复执行一段代码,直到满足特定条件。它特别适合在已知循环次数的情况下使用。本教程将详细介绍 for 循环的语法、用法以及一些常见示例。 1. for 循环的基本语法 for 循环的语法如下: for …...
UniApp 中封装 HTTP 请求与 Token 管理(附Demo)
目录 1. 基本知识2. Demo3. 拓展 1. 基本知识 从实战代码中学习,上述实战代码来源:芋道源码/yudao-mall-uniapp 该代码中,通过自定义 request 函数对 HTTP 请求进行了统一管理,并且结合了 Token 认证机制 请求封装原理ÿ…...
paddlehub hub TypeError 错误
pip install paddlehub hub install chinese_ocr_db_crnn_mobile 提示错误: TypeError: Descriptors cannot be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc > 3.19.0…...
机器学习--(随机森林,线性回归)
一、集成学习方法之随机森林 集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。集成算法大致可以分为:Bagging,B…...
和鲸科技推出人工智能通识课程解决方案,助力AI人才培养
2025年2月,教育部副部长吴岩应港澳特区政府邀请,率团赴港澳宣讲《教育强国建设规划纲要 (2024—2035 年)》。在港澳期间,吴岩阐释了教育强国目标的任务,并与特区政府官员交流推进人工智能人才培养的办法。这一系列行动体现出人工智…...
从暴力破解到时空最优:LeetCode算法设计核心思维解密
一、算法优化金字塔模型(时间复杂度/空间复杂度协同优化) 1.1 复杂度分析的本质 大O记号的三层认知: ① 理论复杂度边界(理想模型) ② 硬件架构影响(缓存命中率/分支预测) ③ 语言特性损耗&am…...
关于在java项目部署过程MySQL拒绝连接的分析和解决方法
前言 在最近一次部署项目一次项目部署过程中,由于没有对MySQL数据库的部分权限和远程连接进行授权,导致了在执行项目功能API时,出现MySQL连接异常或MySQL拒绝连接的问题。 问题 以下是部分报错截图: 分析 根据日志提示…...
『抓包工具』安卓抓包小黄鸟 lsp过检测 雷电模拟器root(保姆级图文)
目录 准备工作雷电9.0.74 64位下载对应工具通过面具鸭安装面具安装防检测模块设置Zygisk安装小黄鸟简易抓包教程总结欢迎关注 『抓包工具』 专栏,持续更新中 欢迎关注 『抓包工具』 专栏,持续更新中 请注意不要随便升级雷电模拟器了 不然你需要重新通过面具鸭安装面具 准备工…...
k8S通过代理将集群外的中间件引入集群内访问 —— 筑梦之路
背景说明 有部分中间件是跑在Kubernetes集群之外,我们希望通过service的方式来访问集群外的中间件,比如访问我们k8s集群外的elasticsearch集群。 ES节点本身又处在一个负载均衡IP:192.168.100.100 之后,但是代理的端口号是9202&am…...
【考试大纲】高级系统架构设计师考试大纲
目录 引言一、 考试说明1.考试目标2.考试要求3.考试科目设置二、 考试范围考试科目1:系统架构设计综合知识考试科目2:系统架构设计案例分析考试科目3:系统架构设计论文引言 最新的系统架构设计师考试大纲出版于 2022 年 11 月,本考试大纲基于此版本整理。 一、 考试说明…...
三个小时学完vue3 —— 简单案例(二)
三个小时学完vue3(二) 图片轮播案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...
筑牢安全防线:工商业场所燃气泄漏防护新方案
燃气安全是企业经营不可逾越的生命线。在餐饮后厨、化工车间、酒店锅炉房等场所,可燃气体一旦泄漏,极易引发严重事故。如何实现精准监测、快速响应,成为工业及商业领域安全管理的核心诉求。旭华智能深耕安全监测领域,推出的工业及…...
git上传仓库操作
在 Visual Studio Code (VSCode) 中,手动将本地仓库与远程仓库关联起来是一个常见的需求。以下是详细的操作步骤和解释: 前提条件 已安装 Git:确保你的系统中已经安装了 Git,并且可以通过命令行运行 git 命令。已初始化本地仓库&…...
广义线性模型下的数据分析(R语言)
一、实验目的: 通过上机试验,掌握利用R实现线性回归分析、逻辑回归、列联分析及方差分析,并能对分析结果进行解读。 数据: 链接: https://pan.baidu.com/s/1JqZ_KbZJEk-pqSUWKwOFEw 提取码: hxts 二、实验内容: 1、2…...
贪心算法精品题
1.找钱问题 本题的贪心策略在于我们希望就可能的保留作用大的5元 class Solution { public:bool lemonadeChange(vector<int>& bills) {std::map<int ,int> _map;for(auto ch:bills){if(ch 5) _map[ch];else if(ch 10){if(_map[5] 0) return false;else{_m…...
爱普生汽车用显示控制器IC:ScalerIC,汽车接口IC,相机接口IC
爱普生汽车显示控制器IC,汽车显示控制器芯片可以分为三类:爱普生显示控制芯片Scaler IC ,爱普生汽车接口IC,爱普生相机接口IC。下面就给大家分别介绍下这三类芯片的具体型号的特征及用途。 爱普生显示控制芯片 Scaler IC Scaler…...
深度学习基础--ResNet50V2网络的讲解,ResNet50V2的复现(pytorch)以及用复现的ResNet50做鸟类图像分类
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 如果说最经典的神经网络,ResNet肯定是一个,从ResNet发布后,作者又进行修改,命名为ResNe50v2,…...
物理竞赛中的线性代数
线性代数 1 行列式 1.1 n n n 阶行列式 定义 1.1.1:称以下的式子为一个 n n n 阶行列式: ∣ A ∣ ∣ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ∣ \begin{vmatrix}\mathbf A\end{vmatrix} \begin{vmatrix} a_{11…...
OptiTrack光学跟踪系统:引领工厂机器人应用的革新浪潮
在现代化的工厂生产线上,一台机械臂正以惊人的毫米级精度执行着精密零件的装配任务。这一精准操作的背后,是OptiTrack光学跟踪系统的实时捕捉与优化,它正助力生产效率与产品质量迈向新的高度。如今,这一技术正在全球范围内广泛应用…...
Coze/Dify/Ollama在玩ai时候的用途
Coze、Dify 和 Ollama 是三种不同的工具或平台,它们各自有不同的定位和用途。以下是对它们的区别、优缺点以及部署和使用方式的详细分析。 1. Coze 简介 Coze 是一个专注于构建基于大语言模型(LLM)的应用程序的开发平台。它类似于 Dify&…...
使用Docker Compose部署 MySQL8
MySQL 8 是一个功能强大的关系型数据库管理系统,而 Docker 则是一个流行的容器化平台。结合使用它们可以极大地简化 MySQL 8 的部署过程,并且确保开发环境和生产环境的一致性。 安装 Docker 和 Docker Compose 首先,确保你的机器上已经安装了 Docker 和 Docker Compose。 …...
Golang快速上手02/Golang基础
4.控制语句 4.1条件控制语句 4.1.1if-elseif-else 与clang不同,if不需要加() if <condition1> {<block1> } else if <condition2> {<block2> } else {<block0> }示例 a : 10 if a > 5 {fmt.Println("a > 5") } els…...
Nginx处理http的流程
文章目录 前言一、发版本后旧版本可以用项目基本情况Nginx 配置**解释每一行的作用:****表现和行为:****适用场景**:资源的缓存策略 在这里插入图片描述 二, nginx处理http的流程Nginx 的 GitHub 源码地址 **Nginx 核心源码解读&a…...
算法之刷题汇总
剑指 Offer 剑指 Offer 题解 | CS-Notes 面试笔记 Leetcode Leetcode 题解 | CS-Notes 面试笔记 GitCode - 全球开发者的开源社区,开源代码托管平台...
【AIGC系列】4:Stable Diffusion应用实践和代码分析
AIGC系列博文: 【AIGC系列】1:自编码器(AutoEncoder, AE) 【AIGC系列】2:DALLE 2模型介绍(内含扩散模型介绍) 【AIGC系列】3:Stable Diffusion模型原理介绍 【AIGC系列】4࿱…...
【Python爬虫(81)】当量子计算邂逅Python爬虫:一场技术变革的预演
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…...
Java Web应用中获取客户端的真实IP地址
Java Web应用中获取客户端的真实IP地址,尤其在存在代理服务器的情况下。 代码示例: public static String getClientIP(HttpServletRequest request) {String ip = parseCommaSeparatedIPs(request.getHeader("X-Forwarded-For"));if (isInvalid(ip)) {ip = pars…...
R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析
全文链接:https://tecdat.cn/?p40797 本文旨在帮助0基础或只有简单编程基础的研究学者,通过 AI 的提示词工程,使用 R 语言完成元分析,包括数据处理、模型构建、评估以及结果解读等步骤(点击文末“阅读原文”获取完整代…...
LangChain原理解析及开发实战指南(2025年最新版)
一、LangChain核心架构解析 1.1 框架设计理念 LangChain是基于提示工程(Prompt Engineering)构建的LLM应用开发框架,其核心思想是通过模块化组件实现大语言模型与业务系统的无缝对接。该框架采用分层设计: 接口层:统一对接OpenAI、DeepSee…...
赋能农业数字化转型 雏森科技助力“聚农拼”平台建设
赋能农业数字化转型,雏森科技助力“聚农拼”平台建设 在数字化浪潮席卷各行业的今天,农业领域也在积极探索转型升级之路。中农集团一直以“根植大地,服务三农”为核心,以“乡村振兴,农民增收”为目标,及时…...
CMU15445(2023fall) Project #2 - Extendible Hash Index 匠心分析
胡未灭,鬓已秋,泪空流 此生谁料 心在天山 身老沧州 ——诉衷情 完整代码见: SnowLegend-star/CMU15445-2023fall: Having Conquered the Loftiest Peak, We Stand But a Step Away from Victory in This Stage. With unwavering determinati…...
深度剖析Seata源码:解锁分布式事务处理的核心逻辑
文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…...
python配置mmcv与mmdet环境
首先查看自己的cuda版本 nvcc --version 安装与cuda对应的torch版本,对应关系 Previous PyTorch Versions | PyTorch 安装对应的mmcv版本,使用下面命令可以自动安装匹配的版本,使用mim安装 mim install mmcv-full -f https://download.o…...
ESP 32控制无刷电机2
import machine import time import socket import network from machine import I2C, Pin, ADC def start_ap(): """ 启动ESP32的AP模式 """ ap network.WLAN(network.AP_IF) ap.active(True) ssid ESP32_APTest …...
【uniapp原生】实时记录接口请求延迟,并生成写入文件到安卓设备
在开发实时数据监控应用时,记录接口请求的延迟对于性能分析和用户体验优化至关重要。本文将基于 UniApp 框架,介绍如何实现一个实时记录接口请求延迟的功能,并深入解析相关代码的实现细节。 前期准备&必要的理解 1. 功能概述 该功能的…...
wps角标快速生成
使用^#符号匹配数字,将[^#]内容找到,随后在格式-字体中选择上标,逐个/批量替换即可(比一点点改效率翻倍)...
Azure Speech
1、文字转语音(Text-To-Speech, TTS) 2、语音转文字(Speech-To-Text): Azure Speech to Text 1- 环境配置:Microsoft Azure 注册使用免费服务: 需要信用卡,本人没有,所以没有完成注册...
SHELL32!ILCombine函数分析之连接两个idl
SHELL32!ILCombine函数分析之连接两个idl 第一部分: STDAPI_(LPITEMIDLIST) ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) { // Let me pass in NULL pointers if (!pidl1) { if (!pidl2) { return NULL; …...
学习threejs,使用ShaderMaterial自定义着色器材质
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ShaderMaterial1.1.1…...
使用 Selenium 和 Requests 自动化获取动态 Referer 和 Sign 的完整指南
在现代网络爬虫和自动化任务中,动态生成的参数(如 Referer 和 Sign)常常是绕过反爬虫机制的关键。本文将详细介绍如何使用 Python 的 Selenium 和 Requests 库,从目标网页中提取动态 Referer 和 Sign,并完成后续的请求…...
1.2.3 使用Spring Initializr方式构建Spring Boot项目
本实战概述介绍了如何使用Spring Initializr创建Spring Boot项目,并进行基本配置。首先,通过Spring Initializr生成项目骨架,然后创建控制器HelloController,定义处理GET请求的方法hello,返回HTML字符串。接着…...
Cursor+pycharm接入Codeuim(免费版),Tab自动补全功能平替
如题,笔者在Cursor中使用pycharm写python程序,试用期到了Tab自动补全功能就不能用了,安装Codeuim插件可以代替这个功能。步骤如下: 1. 在应用商店中搜索扩展Codeuim,下载安装 2. 安装完成后左下角会弹出提示框&#x…...
Ruby基础
一、字符串 定义 283.to_s //转为string "something#{a}" //定义字符串,并且插入a变量的值 something//单引号定义变量 %q(aaaaaaaaa) // 定义字符串,()内可以是任何数,自动转义双引号%Q("aaaaa"…...
wzl-django学习
####################################################总的urls.py from django.contrib import admin from django.urls import path,include, re_path from django.views.static import serve from django.conf import settings from drf_yasg import openapi from drf_yas…...
《AI强化学习:元应用中用户行为引导的智能引擎》
在科技飞速发展的当下,元应用正以前所未有的速度融入我们的生活,从沉浸式的虚拟社交到高度仿真的工作模拟,元应用构建出一个个丰富多彩的虚拟世界。而在这背后,人工智能的强化学习技术宛如一位无形却强大的幕后推手,深…...
Django基础环境准备
Django基础环境准备 文章目录 Django基础环境准备1.准备的环境 win11系统(运用虚拟环境搭建)1.1详见我的资源win11环境搭建 2.准备python环境2.1 winr 打开命令提示符 输入cmd 进入控制台2.2 输入python --version 查看是否有python环境2.3在pyhton官网下…...
机器视觉线阵相机分时频闪选型/机器视觉线阵相机分时频闪选型
在机器视觉系统中,线阵相机的分时频闪技术通过单次扫描切换不同光源或亮度,实现在一幅图像中捕捉多角度光照效果,从而提升缺陷检测效率并降低成本。以下是分时频闪线阵相机的选型要点及关键考量因素: 一、分时频闪技术的核心需求 多光源同步控制 分时频闪需相机支持多路光源…...
【企业场景】上线的项目如何进行限流
一、常见的四种速率限流算法 对于限流,最为直接的就是速率限流了 固定窗口算法 比如 10r/s 就是把时间线分为 1s 一段,也就是周期为 1s,对一个时间段的请求进行计数,超过 10 则舍弃,未超过则直接处理经过 1s 后&…...
【FL0090】基于SSM和微信小程序的球馆预约系统
🧑💻博主介绍🧑💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…...
用大白话解释缓存Redis +MongoDB是什么有什么用怎么用
Redis和MongoDB是什么? Redis:像你家的“小冰箱”,专门存高频使用的食物(数据)。它是基于内存的键值数据库,读写速度极快(每秒超10万次操作)。比如你每次打开手机App,用…...