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

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用,比如遍历数组、累加数值、重复执行某项操作直到满足条件等。
但是在使用循环语句的时候需要注意下哈,有时候一不小心会构成死循环或者屎山代码.

基础循环语句

在C++中,主要有三种基础循环语句,分别是forwhiledo-while

  • for循环
    for循环是最常用的循环语句,它的一般形式为for (初始化表达式(比如:i = 1); 循环条件表达式(比如:i < 10); 循环后的操作表达式(i++)) { 循环体(比如:cout << i << endl;) },这里会在终端中从1打印到10.
    通常用于执行固定次数的循环。
#include <iostream>  
using namespace std;  int main() {  for (int i = 1; i <= 10; i++) {cout << i << endl;}   
}

运行结果
在这里插入图片描述

  • while循环
    while循环的一般形式为while (循环条件表达式) { 循环体 }
    它会在每次循环开始前检查条件表达式,如果条件为真,则执行循环体;否则退出循环。
    这里打印一个小三角:
#include <iostream>  
using namespace std;  int main() {  int n = 5; int i = 1;  while (i <= n) {  int j = 1;  while (j <= n - i) {  cout << " ";  j++;  }  int k = 1;  while (k <= 2 * i - 1) {  cout << "*";  k++;  }  cout << endl;  i++;  }  return 0;  
}

在这里插入图片描述

  • do-while循环
    do-while循环的一般形式为do { 循环体 } while (循环条件表达式);
    它至少执行一次循环体,然后在每次循环结束时检查条件表达式,如果条件为真,则继续循环;否则退出循环。
    这里打印一个大三角:
#include <iostream>  
using namespace std;  int main() {  int n = 9; int i = 1;  do {  int j = 1;  do {  cout << " ";  j++;  } while (j <= n - i);  int k = 1;  do {  cout << "*";  k++;  } while (k <= 2 * i - 1);  cout << endl;  i++;  } while (i <= n);  return 0;  
}

在这里插入图片描述

其余方法

  • goto语句
    尽管 goto不是专门用于循环的语句,但它可以被用来创建循环结构。goto语句允许程序无条件地跳转到程序中指定的标签处。通过合理地设置标签和跳转条件,可以实现循环的效果。
#include <iostream>
using namespace std;int main() {int i = 0;
loop_start: // 定义一个标签if (i < 10) {cout << i << endl;i++;goto loop_start; // 跳转到标签,形成循环}return 0;
}

在这里插入图片描述

  • 基于范围的for循环(得是C++11及以上版本)
    一般语法为for (声明类型 变量名 : 容器名) { 循环体 },用于遍历容器(如std::vectorstd::arraystd::list等)、数组或其他序列中的元素,无需使用索引或迭代器。
    #include <iostream>
    #include <vector>
    using namespace std;int main() {vector<int> numbers = {1, 2, 3, 4, 5};for (int num : numbers) {cout << num << " ";}// 输出: 1 2 3 4 5return 0;
    }
    

以上代码会在终端输出12345

  • std::for_each方法
    std::for_each是C++标准库算法中的一个函数模板,它接受一个迭代器范围和一个函数对象(或Lambda表达式),并对范围内的每个元素执行该函数对象。虽然不是循环语句,但可以用于遍历容器并执行特定操作,实现循环的效果。

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;void print(int i) {cout << i << " ";
    }int main() {vector<int> vec = {1, 2, 3, 4, 5};for_each(vec.begin(), vec.end(), print);// 输出: 1 2 3 4 5return 0;
    }
    

    也是在终端输出12345

相关文章:

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用&#xff0c;比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈&#xff0c;有时候一不小心会构成死循环或者…...

VUE 基础(二)

1 v-show:根据表达值的真假&#xff0c;切换元素的显示和隐藏 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…...

VMware Cloud Foundation ESXi 主机

一、准备嵌套 ESXi 主机环境# 1)物理 ESXi 主机信息 本次准备用于部署 VCF 嵌套实验环境的物理宿主机的配置信息如下图所示。其实,部署 VCF 环境主要对内存的大小要求比较高,部署完整的管理域相关组件下来差不多就要占用 200 GB左右内存,而对 CPU 和存储的需求可以根据实…...

PyTorch深度学习快速入门(下)

PyTorch深度学习快速入门&#xff08;下&#xff09; 一、现有网络模型的使用及修改&#xff08;一&#xff09;背景知识&#xff08;二&#xff09;修改网络模型的三种方法 二、网络模型的保存与加载&#xff08;一&#xff09;保存网络模型的两种方法&#xff08;二&#xff…...

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…...

pandas安装以及导入CSV

安装pandas pip install pandas速度慢可以切换国内镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas执行导入csv操作 import pandas as pd# 读取csv文件 data pd.read_csv(yourPath)输入data查看数据 导入成功&#xff01;...

新能源车浪潮来袭,同时存在高压低压系统,如何准确进行高低压布线间距EMC分析?

摘要 随着车辆电气化水平的逐步提升&#xff0c;电气零部件布局和布线面临着前所未有的挑战&#xff0c;在不断的压缩电气零部件间间距后&#xff0c;EMC性能成为非常关键的性能指标。特别是对于新能源车型&#xff0c;同时存在高压和低压系统&#xff0c;高低压耦合若处理的不…...

QUIC 协议

详解 QUIC 协议&#xff1a;它为何比 TCP 更优越&#xff1f;...

【软件测试】--接口测试

1. 接口用例设计 接口测试的测试点 功能测试 单接口功能&#xff1a; 手工测试中的单个业务模块&#xff0c;一般对应一个接口 登陆业务 --> 登陆接口加入购物车业务 --> 加入购物车接口订单业务 --> 订单接口支付业务 --> 支付接口 借助工具、代码。绕开前端界面…...

【前端】上传视频,截取第一帧图片

使用input上传视频&#xff0c;获得视频的第一帧 参考&#xff1a;JavaScript获取视频的尺寸信息和第一帧图片 - 掘金 (juejin.cn) html&#xff1a; <inputbind:this{uploadRef}on:change{handleUpload}accept"video/*"type"file"/>视频类型校验&a…...

Redis-GEO数据结构的基本用法

GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#xff0c;包含&#xff1a;经度…...

【Linux C | 网络编程】进程池大文件传输的实现详解(三)

上一篇实现了进程池的小文件传输&#xff0c;使用自定义的协议&#xff0c;数据长度数据本身&#xff0c;类似小火车的形式&#xff0c;可以很好的解决TCP“粘包”的问题。 【Linux C | 网络编程】进程池小文件传输的实现详解&#xff08;二&#xff09; 当文件的内容大小少于…...

Mac如何通过SSH连接Github

目录 前言 一、实现步骤 1.生成 SSH 密钥对 2.添加 SSH 密钥到 GitHub&#xff1a; 3.配置 SSH 连接 1.更新远程仓库 URL 2.测试 SSH 连接 前言 GitHub 在 2021 年 8 月 13 日停止了对使用密码进行身份验证的支持。因此&#xff0c;你需要使用其他认证方式&#xff0c;如…...

成就巴西休闲游戏如何借助Google谷歌广告投放优势

在探讨巴西休闲游戏如何借助谷歌广告投放优势实现市场扩张的过程中&#xff0c;我们不得不深入分析巴西市场的独特属性、休闲游戏的兴起背景&#xff0c;以及谷歌广告平台在全球范围内的强大影响力。近年来&#xff0c;随着移动游戏市场的快速发展&#xff0c;特别是中轻度休闲…...

利用python检查磁盘空间使用情况

目录 一.前言 二.使用的库介绍 三.代码实现以及解析 3.1导入模块 3.2邮件发送函数 send_email 3.3检查磁盘空间函数 check_and_clean_disk 3.4主程序逻辑 四.致谢 一.前言 在信息技术飞速发展的今天&#xff0c;数据量的激增使得磁盘空间管理成为系统运维中的一项基…...

卷积神经网络(五)---图像增强的方法

前面的部分专注于卷积神经网络的层结构介绍&#xff0c;同时还介绍了到目前为止比较出名的卷积神经网络&#xff0c;接着使用比较复杂的卷积神经网络提高了 MNIST 数据集的准确率。下面将从另外的角度——图像增强的方面入手&#xff0c;提高模型的准确率和泛化能力。 一直以来…...

矩阵常见分解算法及其在SLAM中的应用

文章目录 常见特殊矩阵定义Cholesky分解&#xff08;正定Hermittian矩阵&#xff0c;分解结果唯一&#xff09;Cholesky分解应用 SVD分解&#xff08;将singularvalues排序后分解唯一&#xff09;SVD 分解的应用&#xff08;任意矩阵&#xff09; QR分解&#xff08;任意矩阵&a…...

【排序】快速排序详解

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;排序 个人主页&#xff1a;Celias blog~ 一、快速排序的思想 快速排序的核心思想是&#xff1a; 选定一个…...

贪心算法总结(2)

一、买卖股票的最佳时机 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxProfit(vector<int>& prices) {int miniINT_MAX;int ret0;for(int&price:prices){//遍历的时候&#xff0c;我们随时去更新最小的值&#xff0c;然后让每一位…...

弘景光电:技术实力与创新驱动并进

在光学镜头及摄像模组产品领域&#xff0c;广东弘景光电科技股份有限公司&#xff08;以下简称“弘景光电”&#xff09;无疑是一颗耀眼的明星。自成立以来&#xff0c;弘景光电凭借其强大的研发实力、卓越的产品性能、精密的制造工艺以及严格的质量管理体系&#xff0c;在光学…...

iOS自动化测试避坑指南:WebDriverAgent签名与真机调试实战

1. 这不是“又一个Appium教程”&#xff0c;而是我踩了三个月坑后画的避坑地图你搜“Appium iOS自动化测试教程”&#xff0c;首页全是“三步跑通Demo”“手把手教你写第一个脚本”——结果照着做&#xff0c;Xcode一编译就报错&#xff0c;WebDriverAgent装不上&#xff0c;真…...

Expecta自定义匹配器开发教程:打造专属测试断言

Expecta自定义匹配器开发教程&#xff1a;打造专属测试断言 【免费下载链接】expecta A Matcher Framework for Objective-C/Cocoa 项目地址: https://gitcode.com/gh_mirrors/ex/expecta Expecta是一款强大的Objective-C/Cocoa匹配器框架&#xff0c;它允许开发者编写清…...

linux系统之进程管理详解

进程&#xff08;Process&#xff09; 是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础。 在当代面向线程设计的计算机结构中&#xff0c;进程是线程的容器。程序是指令、数据及其组织形式的描…...

通过 TaoToken 统一网关体验不同主流模型的生成效果差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过 TaoToken 统一网关体验不同主流模型的生成效果差异 1. 引言&#xff1a;统一接口下的模型体验 在构建基于大语言模型的应用时…...

TrafficMonitor股票插件:Windows任务栏实时监控股票行情的终极指南

TrafficMonitor股票插件&#xff1a;Windows任务栏实时监控股票行情的终极指南 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 还在为复杂的股票软件烦恼吗&#xff1f;每次想看…...

linux基础命令有哪些? linux基础命令使用方法

本期介绍linux基础命令的使用1、用who命令显示当前Linux系统的用户名2、使用下列命令显示有关计算机系统信息&#xff1a;uname(显示操作系统的名称)&#xff0c;uname –n(显示系统域名)&#xff0c;uname –p(显示CPU 的名称)3、使用passwd命令修改用whoami命令找到的用户名和…...

AI Agent客服已过概念期——2024Q2行业渗透率突增至41.6%,但仅7.3%企业实现L3级自主决策闭环(附自评诊断表)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;AI Agent客服已过概念期——2024Q2行业渗透率突增至41.6%&#xff0c;但仅7.3%企业实现L3级自主决策闭环&#xff08;附自评诊断表&#xff09; AI Agent客服正经历从技术验证到规模化落地的关键跃迁。据IDC联…...

Cursor Pro破解工具终极指南:5步解锁AI编程助手完整功能

Cursor Pro破解工具终极指南&#xff1a;5步解锁AI编程助手完整功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

手把手教你用Wireshark抓包分析:一个Easymesh设备到底是怎么‘发现’并‘加入’你家网络的?

用Wireshark解密Easymesh组网&#xff1a;从设备发现到网络接入的全流程解析 当你在客厅新添置了一台支持Easymesh的路由器&#xff0c;通电后它就像有自主意识般自动加入了现有的家庭网络——这种看似"魔法"般的体验背后&#xff0c;其实是一系列精密的协议交互在发…...

RoPE与KV缓存优化:提升Transformer长序列处理能力

1. 旋转位置编码&#xff08;RoPE&#xff09;技术解析旋转位置编码&#xff08;Rotary Position Embedding, RoPE&#xff09;是近年来Transformer架构中位置编码技术的重要突破。传统Transformer使用绝对或相对位置编码&#xff0c;而RoPE通过旋转矩阵实现位置信息的注入&…...