C++要点总结_04_循环语句

目录

  • 4 循环语句
    • 4.1 while循环
    • 4.2 do...while
    • 4.3 for循环
    • 4.4 循环控制
    • 4.5 循环嵌套

4 循环语句

  1. 循环控制:控制程序重复执行,当不符合循环条件时停止循环。
  2. 循环控制种类:while循环、do…while循环和for循环语句。

4.1 while循环

  1. while循环: 当while表达式为真时,开始循环执行语句,当表达式的值为假时退出循环,执行循环外的下一条语句。循环每次都是执行完语句后回到表达式处重新开始判断,重新计算表达式的值,一旦表达式的值为假时就退出循环,为真时就继续执行语句。
/* 
while循环形式:
while(表达式)
{语句}*/
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 使用while循环计算1~100的累加int i=1,sum=0;    // 初始化while(i<101)    //表达式不可以为空.表达式可以用非0代表逻辑值真true,用0代表逻辑值false。{sum += i;if (i%20 == 0){cout<<i<< " " <<sum<<endl;}++i;      //循环体中必须有改变条件表达式值的语句,否则为死循环}cout<< "hs " <<endl;return 0;
}/* 运行结果20 21040 82060 183080 3240100 5050hs 
Program ended with exit code: 0
*//*
while(1) // 死循环
{...}while(0) // 不会进行循环的语句
{...}*/

4.2 do…while

  1. do…while循环语句一般形式如下:do(语句)while(表达式)。
  2. do…while循环的执行顺序是执行循环体的内容,然后判断表达式的值,如果表达式的值为真就跳到循环体处继续执行循环体,循环一直到表达式的值为假,表达式的值为假时跳出循环,执行下一条语句。do…while循环和while循环实现累加的循环体语句相同,只是执行循环体的先后顺序不同。
/*
do(语句)while(表达式)
*/#include<iostream>
using namespace std;int main(int argc, const char * argv[]) {// 使用do{}while();循环计算1~100的累加int i=1,sum=0;do         // 循环先执行循环体,如果循环条件不成立,循环体已经执行一次了,使用时注意变量变化。{sum += i;if (i%20 == 0){cout<<i<< " " <<sum<<endl;}++i;        // 循环体中必须有改变条件表达式值的语句,否则将成为死循环。}while(i<101);  // 表达式不可以为空, while循环语句后要有分号“;”cout<<i<< " " <<sum<<endl;cout<< "hs " <<endl;return 0;
}/* 运行结果20 21040 82060 183080 3240100 5050101 5050hs 
Program ended with exit code: 0
*/

4.3 for循环

  1. for循环格式:for(表达式1;表达式2;表达式3){语句}。
  2. 表达式1:该表达式通常是一个赋值表达式,负责设置循环的起始值,也就是给控制循环的变量赋初值。
  3. 表达式2:该表达式通常是一个关系表达式,用控制循环的变量和循环变量允许的范围值进行比较。
  4. 表达式3:该表达式通常是一个赋值表达式,对控制循环的变量进行增大或减小。
    5.for循环语句的执行过程:(1)先求解表达式1。
    (2)求解表达式2,若其值为真,则执行for语句中指定的内嵌语
    句,然后执行(3)。若表达式2值为假,则结束循环,转到(5)。
    (3)求解表达式3。
    (4)返回(2)继续执行。
    (5)循环结束,执行for语句下面的一个语句。
/*
for(表达式1;表达式2;表达式3)
{语句}
*/#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 使用do{}while();循环计算1~100的累加int i=0,sum=0;for(i=0; i<101; ++i)  {sum += i;        // 当i小于101时,一直执行sum += i; 然后i自增。}cout<<i<< " " <<sum<<endl;cout<< "hs " <<endl;return 0;
}/* 运行结果
101 5050
hs
Program ended with exit code: 0
*/

4.4 循环控制

  1. 循环控制: 包含两方面的内容,一方面是控制循环变量的变化方式,一方面是控制循环的跳转。
  2. break:中断循环。
/*
break:中断循环
*/
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 循环计算1~100的累加,sum>90时跳出循环。int i=0,sum=0;for(i=0; i<101; ++i){cout<<i<< " " <<sum<<endl;if (sum>90)break;   // 如果遇到循环嵌套的情况,break语句将只会使程序流程跳出包含它的最内层的循环结构,只跳出一层循环。sum += i;    // 当i小于101时,一直执行sum += i; 然后i自增。}cout<<i<< " " <<sum<<endl;cout<< "hs " <<endl;return 0;
}/* 运行结果0 01 02 13 34 65 106 157 218 289 3610 4511 5512 6613 7814 9114 91hs 
Program ended with exit code: 0
*/
  1. continue:跳出本次循环体的执行。continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 取输出0~10内的偶数int i=0;for(i=0; i<11; ++i){if (i%2 !=0)continue;cout<<i<<endl;}cout<< "hs " <<endl;return 0;
}/* 运行结果0246810hs
*/

4.5 循环嵌套

  1. 循环嵌套:循环有for、while、do…while 3种方式,这3种循环可以相互嵌套.
/*
打印乘法口诀表
*/
#include <iostream>
#include <iomanip>
using namespace std;int main(int argc, const char * argv[]) {// 取输出0~10内的偶数int i=1,j=1;for(i=1; i<10; ++i){for(j=1;j<=i;++j){cout<<setw(2)<<i<<"x"<<j<<"="<<setw(1)<<i*j;}cout<<endl;}cout<<setw(4)<< "hs " <<endl;return 0;
}/* 运行结果1x1=12x1=2 2x2=43x1=3 3x2=6 3x3=94x1=4 4x2=8 4x3=12 4x4=165x1=5 5x2=10 5x3=15 5x4=20 5x5=256x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=367x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=498x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=649x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81hsProgram ended with exit code: 0
*/

参考《C++从入门到精通》

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

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

相关文章

Profinet从站转TCP/IP协议转化网关(功能与配置)

如何将Profinet和TCP/IP网络连接通讯起来呢?近来几天有几个朋友问到这个问题&#xff0c;那么作者在这里统一说明一下。其实有一个不错的设备产品可以很轻易地解决这个问题&#xff0c;名为JM-DNT-PN。接下来作者就从该设备的功能及配置详细说明一下。 一&#xff0c;设备主要…

Python:随机数、随机选择的应用

step1:导入 导入的random相当于是创建了random文件里的的一个对象 import random random() 产生0~1随机数 randint(a,b)产生a~b的整数 闭区间&#xff0c;可以取到a,b random.choice(touple_name)从touple_name&#xff08;数组、列表..&#xff09;中随机选择元素 import rand…

JSP内置对象及作用域

Request 存东西ResponseSession 存东西Application [ SerlvetContext ] 存东西config [ SerlvetConfig ]out/targetpage 不用了解exception <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><title>…

DBeaver使用SQL脚本编辑器

文章目录 1 新建脚本2 选择数据库3 编写脚本【按行执行】参考 1 新建脚本 2 选择数据库 3 编写脚本【按行执行】 光标放到需要执行的行上&#xff0c;点击【最上面的按钮】 或者选中某片代码&#xff0c;然后执行 也可以编写一个脚本然后执行 参考 dbeaver安装和使用教程 …

LeetCode 热题 HOT 100 (011/100)【宇宙最简单版】

【图论】No. 0200 岛屿数量 【中等】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xf…

Chrome谷歌浏览器Console(控制台)显示文件名及行数

有没有这样的困扰&#xff1f;Chrome谷歌浏览器console(控制台)不显示编译文件名及行数? 设置&#xff08;Settings&#xff09;- > 忽略列表&#xff08;lgnore List&#xff09;-> 自定义排除规则&#xff08;Custom exclusion rules&#xff09; 将自定义排除规则…

Skyeye云智能制造企业版源代码全部开放

智能制造一体化管理系统 [SpringBoot2 - 快速开发平台]&#xff0c;适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…

【数据结构】堆,优先级队列

目录 堆堆的性质大根堆的模拟实现接口实现构造方法建堆入堆判满删除判空获取堆顶元素 Java中的PriorityQueue实现的接口构造方法常用方法PriorityQueue注意事项 练习 堆 如果有一个集合K {k0&#xff0c;k1&#xff0c; k2&#xff0c;…&#xff0c;kn-1}&#xff0c;把它的…

【C++】C++入门基础

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;C 个人主页&#xff1a;Celias blog~ 目录 一、C简介 二、第一个C程序 三、namespace 命名空间 3.1 na…

UART 通信协议

文章目录 一 简介二 电平标准三 引脚定义四 数据格式五 波特率 一 简介 ​ UART (Universal Asynchronous Receiver/Transmitter)&#xff0c;通用异步收发器&#xff0c;是一种串行、异步、全双工通信协议。 串行&#xff1a;利用一条传输线&#xff0c;将数据一位一位地传送…

一整套开箱即用的前端管理后台解决方案,基于 Vue.js搭配使用 iView UI 组件库形成的,私活神器

前言 在现代Web应用开发中&#xff0c;后台管理系统的构建常常面临诸多挑战&#xff0c;如复杂的权限管理、多语言支持、响应式设计等。现有解-决方案可能存在功能不丰富、定制难度大、开发效率低等问题。 为了解决这些痛点&#xff0c;一款新的软件——iView Admin&#xff…

【Docker】Windows11环境下的安装

前置依赖环境配置 确保虚拟化开启 搜索栏直接搜索如下功能 勾选下面两个选项&#xff0c;确定 重启电脑&#xff0c;以管理员身份打开PowerShell wsl --status wsl --update打开微软应用商店选择一个Ubuntu版本下载并打开 输入一个用户名和密码 然后就可以在Windows下使…

Flink-CDC解析(第47天)

前言 本文主要概述了Flink-CDC. 1. CDC 概述 1.1 什么是CDC&#xff1f; CDC是&#xff08;Change Data Capture 变更数据获取&#xff09;的简称 &#xff0c;在广义的概念上&#xff0c;只要是能捕获数据变更的技术&#xff0c;都可以称之为 CDC。 核心思想是&#xff0c…

昇思MindSpore 应用学习-GAN图像生成-CSDN

模型简介 生成式对抗网络(Generative Adversarial Networks&#xff0c;GAN)是一种生成式机器学习模型&#xff0c;是近年来复杂分布上无监督学习最具前景的方法之一。 最初&#xff0c;GAN由Ian J. Goodfellow于2014年发明&#xff0c;并在论文Generative Adversarial Nets中…

超逼真AI生成电影来了!《泰坦尼克号》AI重生!浙大阿里发布MovieDreamer,纯AI生成电影引爆热议!

视频生成领域的最新进展主要利用了短时内容的扩散模型。然而&#xff0c;这些方法往往无法对复杂的叙事进行建模&#xff0c;也无法在较长时间内保持角色的一致性&#xff0c;而这对于电影等长篇视频制作至关重要。 对此&#xff0c;浙大&阿里发布了一种新颖的分层框架Mov…

图解分布式事务中的2PC与Seata方案

文章目录 文章导图什么是2PC解决传统2PC方案XA方案DTP模型举例&#xff1a;新用户注册送积分总结&#xff1a; Seata方案设计思想执行流程举例&#xff1a;新用户注册送积分 Seata实现2PC事务&#xff08;AT模式&#xff09;前提整体机制写隔离读隔离实际案例理解要点说明核心代…

uniapp小程序中富文本内容渲染图片不展示的问题

文章目录 1.从后端请求的数据中图片是这样的2.前端我是用Uview中的u-parse组件3.这样修改去掉富文本中的所有反斜杠4.完美解决 1.从后端请求的数据中图片是这样的 <p><img src\\\"https://zhangsanfengcode.cn:8084/images/2024-06-28a257befe.jpg\\\" alt…

如何使用 SQLite ?

SQLite 是一个轻量级、嵌入式的关系型数据库管理系统&#xff08;RDBMS&#xff09;。它是一种 C 库&#xff0c;实现了自给自足、无服务器、零配置、事务性 SQL 数据库引擎。SQLite 的源代码是开放的&#xff0c;完全在公共领域。它被广泛用于各种应用程序&#xff0c;包括浏览…

关于 OSPF 序列号范围 0x80000001-0x7FFFFFFF 正本清源

注&#xff1a;机翻&#xff0c;未校对。 正本&#xff1a;RFC 2328 OSPF Version 2 中相关解释 April 1998 12.1.6. LS sequence number 12.1.6. 序列号 The sequence number field is a signed 32-bit integer. It is used to detect old and duplicate LSAs. The space …

【OSS对象存储】Springboot集成阿里云OSS + 私有化部署Minio

【OSS对象存储】Springboot集成阿里云OSS 私有化部署Minio 一、摘要二、POM依赖三、配置文件四、表结构设计五、代码实现5.1 代码包结构5.2 API封装5.3 增删改查 六、扩展6.1 Minio配置https访问 一、摘要 掌握阿里云OSS、私有化部署Minio两种对象存储的使用方式运用工厂策略…