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

「C/C++」C/C++ 之 循环结构详解

在这里插入图片描述

✨博客主页
何曾参静谧的博客
📌文章专栏
「C/C++」C/C++程序设计
📚全部专栏
「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合
「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发
「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明

目录

    • C++循环结构详解
      • 1. `for`循环
      • 2. `while`循环
      • 3. `do-while`循环
      • 4. 循环控制语句
      • 总结

C++循环结构详解

在C++编程中,循环结构是一种非常重要的控制流语句,它允许程序重复执行某段代码,直到满足特定的条件为止。循环结构极大地提高了代码的复用性和效率,使得处理重复任务变得简单而高效。C++提供了多种循环结构,包括for循环、while循环和do-while循环。本文将详细介绍这些循环结构及其使用场景。

1. for循环

for循环是最常用的循环结构之一,它通常用于已知循环次数的场景。for循环的基本语法如下:

for (初始化表达式; 循环条件; 迭代表达式) {// 循环体
}
  • 初始化表达式:在循环开始前执行,通常用于初始化循环控制变量。
  • 循环条件:在每次循环迭代前检查,如果条件为真(非零),则执行循环体;否则,跳出循环。
  • 迭代表达式:在每次循环迭代结束时执行,通常用于更新循环控制变量。

示例:打印1到10的数字

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

2. while循环

while循环在每次迭代前检查条件,如果条件为真,则执行循环体。while循环的基本语法如下:

while (循环条件) {// 循环体
}
  • 循环条件:在每次循环迭代前检查,如果条件为真(非零),则执行循环体;否则,跳出循环。

示例:计算1到10的和

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

3. do-while循环

do-while循环与while循环类似,但它在每次迭代后检查条件。这意味着do-while循环至少会执行一次,即使条件一开始就是假的。do-while循环的基本语法如下:

do {// 循环体
} while (循环条件);
  • 循环条件:在每次循环迭代后检查,如果条件为真(非零),则继续执行循环体;否则,跳出循环。

示例:要求用户输入一个正整数

#include <iostream>
using namespace std;int main() {int num;do {cout << "Enter a positive integer: ";cin >> num;} while (num <= 0);cout << "You entered: " << num << endl;return 0;
}

4. 循环控制语句

在循环结构中,C++还提供了几种控制循环行为的语句,包括breakcontinuegoto(尽管goto在现代编程中很少使用,因为它可能导致代码难以理解和维护)。

  • break:立即终止循环,并跳出循环体,继续执行循环之后的代码。
  • continue:跳过当前迭代中剩余的代码,并立即开始下一次迭代(如果条件仍然为真)。

示例:使用breakcontinue

#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 10; ++i) {if (i % 2 == 0) {continue; // 跳过偶数}if (i == 7) {break; // 终止循环}cout << i << " ";}cout << endl;return 0;
}

在这个例子中,循环会打印1、3、5,然后在i等于7时终止,因为break语句被执行。偶数会被continue语句跳过。

总结

C++提供了多种循环结构,每种结构都有其特定的使用场景。for循环适用于已知循环次数的场景,while循环和do-while循环则适用于基于条件的循环。通过合理使用这些循环结构和循环控制语句,可以编写出高效、易读的代码。掌握这些基本概念和用法,对于编写复杂的C++程序至关重要。


在这里插入图片描述

相关文章:

「C/C++」C/C++ 之 循环结构详解

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

json-server的基本使用

一、json-server工具的使用 可以快速的搭建符合RESTful API服务。返回符合RESTful规范的数据&#xff1b; 1、全局引入json-server包 npm install -g json-server2、创建json格式的db.json文件 {"jsonData": [{"name": "小明"}] }3、在json文…...

华为配置BFD状态与接口状态联动实验

组网图形 图1 配置BFD状态与接口状态联动组网图 BFD简介配置注意事项组网需求配置思路操作步骤配置文件 BFD简介 为了减小设备故障对业务的影响&#xff0c;提高网络的可靠性&#xff0c;网络设备需要能够尽快检测到与相邻设备间的通信故障&#xff0c;以便及时采取措施&…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-22

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-22 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-22目录1. PoisonedRAG: Knowledge corruption attacks to retrieval-augmented generation of large language models摘要创新点…...

理解消息队列

消息队列&#xff08;Message Queue&#xff09;有下面四大作用&#xff1a; 解耦。几个业务系统之间可以通过 MQ 解耦&#xff0c;例如做数据同步数据的顺序性和可恢复性异步通讯缓冲能力 理解 MQ MQ 的前两个特点且不说&#xff0c;我们看看另外两个的。 异步通讯&#x…...

!什么,matlab也有网页版了

已经脱离matlab一下下几天的困境了&#xff0c;是的&#xff0c;matlab也有网页版了 附上网址&#xff1a; MATLAB Login | MATLAB & Simulink...

安卓屏幕息屏唤醒

背景&#xff0c;今天遇项目需要&#xff0c;需要在下载在后台任务运行时&#xff08;如下载、上传或进行长时间计算&#xff09;&#xff0c;保持 CPU 活动&#xff0c;然后就写了这个实现方法&#xff0c;废话不多说上代码 第一步&#xff0c;再清单AndroidManifest文件声明权…...

类文件具有错误的版本 61.0, 应为 55.0

启动项目的时候报这个错误. 项目所使用的redis版本是jdk17的&#xff0c;而我使用的是Java11.所以要将redis版本降下来。 另一种方式就是修改jdk的版本&#xff0c;在设置修改编译版本&#xff0c;在版本控制里面修改jdk的版本。...

vue点击菜单,出现2个相同tab,啥原因

点击菜单&#xff0c;出现相同的tab 出现的原因&#xff1a; 1.组件中的name 和配置路由文件js, 的大小写不一致导致 2、跳转的路由整个地址&#xff0c;大小写不一致大致...

【网络原理】——图解HTTPS如何加密(通俗简单易懂)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;HTTP为什么不安全 二&#xff1a;HTTPS加密过程 1&#xff1a;密码学中的概念 &…...

CentOS 修改服务器登录密码的完整指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…...

【PnP】详细公式推导,使用DLT直接线性变换法求解相机外参

文章目录 &#x1f680;PnP1️⃣ 求解不考虑尺度的解2️⃣ 恢复解的尺度3️⃣ 另一种解法 &#x1f680;PnP PnP(Perspective-n-Point)是求解3D到2D点相机外参的算法。PnP算法有DLT直接线性变换、P3P三对点估计位姿、EPnP(Efficient PnP)、BA(Bundle Adjustment)光速法平差。这…...

怎样把书上的事件图改编成活动图-《分析模式》漫谈43

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 《分析模式》中模型图的UML改编&#xff0c;之前也有人做过&#xff0c;Martin Fowler网站上给出了部分改编成果。 这些改编成果只覆盖了部分章节&#xff0c;而且只是把类型图&#…...

CodeFormer——基于代码本查找变换器的鲁棒盲人脸修复翻译

文章目录 原文翻译摘要1 Introduction2 Related Work3 Methodology3.1 Codebook Learning (Stage I)3.2 Codebook Lookup Transformer Learning (Stage II)3.3 Controllable Feature Transformation (Stage III) 4 Experiments4.1 Datasets4.2 Experimental Settings and Metri…...

监控场景下,视频SDK的应用策略

在当今数字化、智能化的时代背景下&#xff0c;音视频技术的快速发展正深刻改变着各行各业。特别是在监控领域&#xff0c;音视频SDK的应用不仅极大地提升了监控系统的性能与效率&#xff0c;还推动了监控技术的智能化转型。 一、音视频SDK 音视频SDK是一套集成了音视频编解码…...

前端面试必备!HTML 超实用考点全解析

在前端开发的广阔领域中&#xff0c;面试是检验开发者能力的关键环节。而 HTML 作为前端开发的基础&#xff0c;在面试中常常占据重要地位。无论是初入前端领域的新人&#xff0c;还是经验丰富的开发者&#xff0c;都可能在 HTML 的相关问题上遭遇挑战。今天&#xff0c;就让我…...

自动驾驶系统研发系列—避免事故的利器:AEB自动紧急制动系统详解

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。 🚀 探索专栏:学…...

zabbix 6.0 监控clickhouse(单机)

zabbix 6.0 LTS已经包含了clickhouse的监控模板&#xff0c;所以我们可以直接使用自带的模板来监控clickhouse了。 0.前置条件 clickhouse 已经安装&#xff0c;我安装的是24.3.5.47zabbix-agent 已经安装并配置。系统是ubuntu 2204 server 1. 新建监控用户 使用xml的方式为…...

Redis的RDB执行原理

文章目录 引入‘页表’的概念Copy-On-WriteRDB快照 引入‘页表’的概念 Linux里面每个进程都是无法直接操作物理内存的&#xff0c;每个进程只能用页表映射本进程的虚拟内存到物理内存的映射。 bgsave的时候&#xff0c;主进程会fork&#xff08;复制&#xff09;一个子进程&am…...

速度背!24下软考网工“经典100道母题来了”!

2024下软考已经迫在眉睫了&#xff0c;准备考下半年软考多媒体应用设计师的小伙伴们准备得怎么样了&#xff1f; 单单只啃书肯定不太够&#xff0c;今天给大家整理了多媒体100道经典题&#xff0c; 这些都是历年高频考点整理&#xff0c;包含24下软考80%以上考点&#xff0c;跟…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...