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

c++之循环

目录

C++循环结构完全解析:从基础到实战应用

一、for循环结构

二、while循环结构

三、do-while循环结构

四、范围for循环(C++11)

五、循环控制语句


C++循环结构完全解析:从基础到实战应用

循环结构是编程语言的核心控制结构之一,本文将深入讲解C++中的四种循环方式,并提供多个实用代码示例。


一、for循环结构

for循环是最常用的确定性循环结构,其基本格式为: $$ \text{for}(初始化表达式; 条件表达式; 更新表达式) $$

示例1:基础计数循环

#include <iostream>
using namespace std;int main() {for(int i = 1; i <= 5; ++i) {cout << "当前数值:" << i << endl;}return 0;
}

输出结果:

当前数值:1
当前数值:2
当前数值:3
当前数值:4
当前数值:5

示例2:复合条件循环

#include <iostream>
using namespace std;int main() {for(int a=0, b=10; a < b; a+=2, b-=1) {cout << "a=" << a << ", b=" << b << endl;}return 0;
}

输出结果:

a=0, b=10
a=2, b=9
a=4, b=8


二、while循环结构

while循环适用于不确定循环次数的场景,先判断后执行。

示例1:输入验证

#include <iostream>
using namespace std;int main() {int password;cout << "请输入密码(123456):";cin >> password;while(password != 123456) {cout << "密码错误,请重新输入:";cin >> password;}cout << "登录成功!" << endl;return 0;
}

示例2:数据过滤

#include <iostream>
using namespace std;int main() {int num = 1024;while(num > 2) {num /= 2;cout << num << " ";}return 0;
}

输出结果:

512 256 128 64 32 16 8 4 2 


三、do-while循环结构

至少执行一次循环体,适合需要先执行后判断的场景。

示例1:菜单系统

#include <iostream>
using namespace std;int main() {char choice;do {cout << "\n1. 开始游戏\n2. 设置\n3. 退出\n请选择:";cin >> choice;switch(choice) {case '1': cout << "游戏开始!"; break;case '2': cout << "进入设置"; break;case '3': cout << "再见!"; break;default: cout << "无效选项";}} while(choice != '3');return 0;
}

示例2:数学计算

#include <iostream>
using namespace std;int main() {int n, sum = 0;cout << "输入正整数:";cin >> n;do {sum += n%10;n /= 10;} while(n > 0);cout << "各位数字之和:" << sum;return 0;
}


四、范围for循环(C++11)

专为遍历容器设计的简化循环结构。

示例1:数组遍历

#include <iostream>
using namespace std;int main() {int nums[] = {2, 4, 6, 8, 10};for(int num : nums) {cout << num * 2 << " ";}return 0;
}

输出结果:

4 8 12 16 20 

示例2:字符串处理

#include <iostream>
#include <string>
using namespace std;int main() {string msg = "Hello";for(char &c : msg) {c = toupper(c);}cout << msg; // 输出:HELLOreturn 0;
}


五、循环控制语句
  1. break:立即终止当前循环
  2. continue:跳过本次循环剩余代码
  3. 循环嵌套:最多支持256层嵌套(视编译器而定)

实践建议:

  • 优先选择for循环处理确定次数的场景
  • 使用while循环处理不确定次数的迭代
  • 需要至少执行一次时使用do-while
  • 范围for循环最适合容器遍历

掌握这些循环结构的特性,能够显著提升代码效率和可读性。建议通过实际项目练习不同循环结构的组合应用,加深对循环控制的理解。

相关文章:

c++之循环

目录 C循环结构完全解析&#xff1a;从基础到实战应用 一、for循环结构 二、while循环结构 三、do-while循环结构 四、范围for循环&#xff08;C11&#xff09; 五、循环控制语句 C循环结构完全解析&#xff1a;从基础到实战应用 循环结构是编程语言的核心控制结构之一&a…...

python h5py 读取mat文件的<HDF5 object reference> 问题

我用python加载matlab的mat文件 mat文件&#xff1a; 加载方式&#xff1a; mat_file h5py.File(base_dir str(N) _nodes_dataset_snr- str(snr) _M_ str(M) .mat, r) Signals mat_file["Signals"][()] Tp mat_file["Tp"][()] Tp_list mat_fil…...

linux命令 systemctl 和 supervisord 区别及用法解读

目录 基础与背景服务管理范围配置文件和管理方式监控与日志依赖管理适用场景常用命令对照表实际应用场景举例优缺点对比小结参考链接 1. 基础与背景 systemctl 和 supervisord 都是用于管理和控制服务&#xff08;进程&#xff09;的工具&#xff0c;但它们在设计、使用场景和…...

Spring Boot + MyBatis 实现的简单用户管理项目的完整目录结构示例

&#x1f4c1; 示例项目结构&#xff08;基于 Maven&#xff09; user-management/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/usermanagement/ │ │ │ ├── controller/ │ │ │ │ └── UserC…...

NodeJS全栈开发面试题讲解——P5前端能力(React/Vue + API调用)

✅ 5.1 如何使用 React/Vue 发起后端请求&#xff1f;用什么库&#xff1f; 面试官您好&#xff0c;在实际项目中我们通常使用 axios、fetch 或框架提供的封装库发起后端请求。 &#x1f527; 常用库对比&#xff1a; 库框架适配优点axios通用默认支持拦截器、取消请求、请求体…...

[001]从操作系统层面看锁的逻辑

从操作系统层面&#xff0c;锁 (Lock) 是一种同步机制&#xff0c;用于控制多个线程或线程对共享资源的访问&#xff0c;防止竞态条件(race condition).常见的锁包括互斥锁&#xff08;mutex&#xff09;、读写锁(read-write lock)、自旋锁&#xff08;spinlock&#xff09;等。…...

初识 Pytest:测试世界的智能助手

概述 在编写程序的过程中&#xff0c;我们常常需要确认代码是否按照预期工作。为了提高效率并减少人为错误&#xff0c;我们可以借助工具来帮助我们完成这一过程。Pytest 就是这样一个用于编写和运行测试的 Python 工具。 什么是 Pytest&#xff1f; Pytest 是一个用于 Pyth…...

stm32 + ads1292心率检测报警设置上下限

这个项目是在做心率检测的时候一个小伙伴提出来的&#xff0c;今年五一的时候提出来的想法&#xff0c;五一假期的时候没时间&#xff0c;也没心情做这个&#xff0c;就把这个事情搁置了&#xff0c;在月中做工作计划的时候&#xff0c;就把这个小项目排进来了&#xff0c;五一…...

项目练习:element ui 的icon放在button的右侧

文章目录 一、需求描述二、左侧实现三、右侧实现 一、需求描述 我们知道&#xff0c;element ui的button一般都会配置一个icon 这个icon默认是放在左侧的。 如何让它放在右侧了&#xff1f; 二、左侧实现 <el-buttontype"primary"plainicon"el-icon-d-arr…...

性能诊断工具AWR配置策略与报告内容解析

AWR&#xff08;Automatic Workload Repository&#xff09;是 Oracle 数据库中的一个重要性能诊断工具。AWR 会按照固定的时间间隔自动收集数据库系统的性能统计信息。这些信息涵盖了数据库运行状态的方方面面&#xff0c;像SQL 执行情况、系统资源利用率、等待事件等。AWR抓取…...

Tailwind CSS 实战,基于 Kooboo 构建 AI 对话框页面(三):实现暗黑模式主题切换

基于前两篇的内容&#xff0c;为页面添加主题切换功能&#xff0c;实现网站页面的暗黑模式&#xff1a; Tailwind css实战&#xff0c;基于Kooboo构建AI对话框页面&#xff08;一&#xff09;-CSDN博客 Tailwind css实战&#xff0c;基于Kooboo构建AI对话框页面&#xff08;…...

OleDbParameter.Value 与 DataTable.Rows.Item.Value 的性能对比

OleDbParameter.Value 与 DataTable.Rows.Item.Value 的性能对比 您提到的两种赋值操作属于不同场景&#xff0c;它们的性能和稳定性取决于具体使用方式。下面从几个维度进行分析&#xff1a; 1. 操作本质对比 &#xff08;1&#xff09;OleDbParameter.Value 用途&#xf…...

Unity3D ET框架游戏脚本系统解析

前言 ET框架在Unity3D中实现的GamePlay脚本系统是一种革命性的、基于ECS&#xff08;实体-组件-系统&#xff09;架构的设计&#xff0c;它彻底改变了传统的基于MonoBehaviour的游戏逻辑编写方式。其核心思想是追求高性能、高解耦、易热更新&#xff0c;特别适合大型复杂的网络…...

函数的定义、调用、值传递、声明、非安全函数

函数 函数&#xff08;英文“function”&#xff09;把一些经常用到的代码封装起来&#xff0c;这样可以减少一些冗余代码、重复的代码。一个大的程序&#xff0c;它是由很多很多程序块组成的&#xff0c;每个模块实现一个特定的功能。 函数的定义 格式 英文版 return_typ…...

MySQL 8.0 OCP 英文题库解析(十一)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题91~100 试题91…...

机器学习算法-k-means

今天我们用 「超市顾客分组」 的例子来讲解K-means算法&#xff0c;从原理到实现一步步拆解&#xff0c;保证零基础也能懂&#xff01; &#x1f6d2; 例子背景 假设你是超市经理&#xff0c;手上有顾客的以下数据&#xff1a; 顾客ID每月消费金额&#xff08;元&#xff09;…...

ADQ36-2通道2.5G,4通道5G采样PXIE

ADQ36是一款高端12位四通道灵活数据采集板&#xff0c;针对高通道数科学应用进行了优化。ADQ36具有以下特性: 4 / 2模拟输入通道每通道2.5 / 5 GSPS7gb/秒的持续数据传输速率两个外部触发器通用输入/输出&#xff08;GPIO&#xff09;ADQ36数字化仪包括固件FWDAQ ADQ36简介 特…...

LLM:decoder-only 思考

文章目录 前言一、KV-cache1、为什么使用KV-cache2、KV-cache的运作原理 二、Decoder-only VS Encoder-Decoder1、Decoder-only2、Encoder-Decoder 三、Causal LM VS PrefixLM总结 前言 decoder-only模型是目前大模型的主流架构&#xff0c;由于OpenAI勇于挖坑踩坑&#xff0c…...

数字创新智慧园区建设及运维方案

该文档是 “数字创新智慧园区” 建设及运维方案,指出传统产业园区存在管理粗放等问题,“数字创新园区” 通过大数据、AI、物联网、云计算等数字化技术,旨在提升园区产业服务、运营管理水平,增强竞争力,实现绿色节能、高效管理等目标。建设内容包括智能设施、核心支撑平台、…...

【科研绘图系列】R语言绘制森林图(forest plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图系统信息介绍 本文介绍使用R语言绘制森林图(forest plot)的方法。首先加载必要的R包(grid、forestploter、openxlsx、stringr),导入并预处…...

Springcloud Alibaba自定义负载均衡详解

主要说一下springcloud alibaba 在使用nacos注册中心过程中&#xff0c;请求服务负载均衡的配置方法 引入依赖包 这个依赖包是springcloud在新版本的负载均衡实现&#xff0c;2020版本以上 <dependency><groupId>org.springframework.cloud</groupId><ar…...

深度学习---负样本训练

一、负样本的本质与核心作用 1. 定义与范畴 负样本&#xff08;Negative Sample&#xff09;是与目标样本&#xff08;正样本&#xff09;在语义、特征或任务目标上存在显著差异的样本。其核心价值在于通过对比学习引导模型学习样本间的判别性特征&#xff0c;而非仅记忆正样本…...

SpringAI+DeepSeek大模型应用开发实战

内容来自黑马程序员 这里写目录标题 认识AI和大模型大模型应用开发模型部署方案对比模型部署-云服务模型部署-本地部署调用大模型什么是大模型应用传统应用和大模型应用大模型应用 大模型应用开发技术架构 SpringAI对话机器人快速入门会话日志会话记忆 认识AI和大模型 AI的发…...

【Python Cookbook】文件与 IO(一)

文件与 IO&#xff08;一&#xff09; 1.读写文本数据2.打印输出至文件中3.使用其他分隔符或行终止符打印4.读写字节数据5.文件不存在才能写入 1.读写文本数据 你需要读写各种不同编码的文本数据&#xff0c;比如 ASCII&#xff0c;UTF-8 或 UTF-16 编码等。 使用带有 rt 模式…...

STM32 HAL库函数学习 GPIO篇

1、void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, const GPIO_InitTypeDef *pGPIO_Init) GPIO外设属于是任何芯片的最基础功能 &#xff0c;STM32各个系列的GPIO初始化都是一致的&#xff0c;有不同的是部分系列在IO复用使用了单独一个成员属性Alternate 来表明这个IO的具体复用功…...

如何以 9 种方式将照片从 iPhone 传输到笔记本电脑

您的 iPhone 可能充满了以照片和视频形式捕捉的珍贵回忆。无论您是想备份它们、在更大的屏幕上编辑它们&#xff0c;还是只是释放设备上的空间&#xff0c;您都需要将照片从 iPhone 传输到笔记本电脑。幸运的是&#xff0c;有 9 种方便的方法可供使用&#xff0c;同时满足 Wind…...

根据jvm源码剖析类加载机制

根据jvm源码剖析类加载机制 java Test.class之后的大致流程 java Test.class ----> 对于windows操作系统 ----> java.exe调用jvm.dll文件创建JVM&#xff0c; ----> 在创建JVM中先由C的代码创建Boostarp&#xff08;引导&#xff09;类加载器&#xff0c; ----&g…...

Mixly1.0/2.0/3.0 (windows系统) 安装教程及使用常见问题解决

大家好&#xff01;长期以来&#xff0c;不少用户在使用 Mixly 软件过程中遇到了各类问题。为了帮助大家更顺畅地使用该软件&#xff0c;齐护机器人工程师结合自身丰富经验&#xff0c;精心总结并推出了本期教程。在本教程中&#xff0c;我们将从 Mixly 图形化编程软件的安装步…...

DDS通信中间件——DDS-TSN规范

DDS通信中间件——DDS-TSN规范 做了十年DDS通信中间件产品的程序员和大家分享一下对DDS这套规范的个人理解。预期本系列文章将包括以下内容陆续更新&#xff1a; DDS规范概述DCPS规范解读 & QoS策略XTypes规范解读RTPS规范解读DDS安全规范解读DDS-RPC规范解读&#xff08…...

JWT安全:弱签名测试.【实现越权绕过.】

JWT安全&#xff1a;假密钥【签名随便写实现越权绕过.】 JSON Web 令牌 (JWT)是一种在系统之间发送加密签名 JSON 数据的标准化格式。理论上&#xff0c;它们可以包含任何类型的数据&#xff0c;但最常用于在身份验证、会话处理和访问控制机制中发送有关用户的信息(“声明”)。…...