重生之我在21世纪学C++—循环语句

一、while 循环

1、while 语法形式

while ( 表达式 )

{

        语句

}

while默认只能跟一条语句,如果有多条语句,需要用{ }将语句括起来。

2、执行流程

首先上来先执行判断表达式,如果表达式的值为 0 ,就不进入循环;如果表达式的值不为 0 ,则执行循环语句,语句执行完后再继续判断,是否进行下一次循环。

3、举例

(1)要想得到 n 的最低位,可以使用 n % 10 的运算,得到的余数就是最低位。如: 1234 % 10 得到4;

(2) 要想去掉n的最低位,找出倒数第二位,通过 n = n / 10 操作就可以去掉最低位。如:

n=1234/10 得到 123 ,123相较于1234就去掉了最低位, 123%10 就得到了倒数第二位 3 。

(3) 循环(1)和(2)两个步骤,在 n 变成 0 之前,就能到所有的位。

二、for 循环

1、for 循环语法形式

for(表达式1; 表达式2; 表达式3)

{

语句;

}

for默认只能跟一条语句,如果有多条语句,需要用{ }将语句括起来。

表达式1 用于循环变量的初始化

表达式2 用于循环结束条件的判断

表达式3 用于循环变量的调整

2、执行流程

首先执行表达式 1 :初始化循环变量,接下来执行表达式 2 的判断部分,表达式 2 的结果如果为假,就直接不进入循环;表达式 2 的结果如果为真,则执行循环语句。循环语句执行完后,再去执行表达式 3 ,调整循环变量,然后再去表达式 2 的地方执行判断,表达式 2 的结果决定循环是否继续。

整个循环的过程中,表达式 1 初始化部分只被执行 1 次,剩下的就是表达式 2、循环语句、表达式 3 在循环执行

3、举例

要求输出 100 以内所有 3 的倍数的和,循环变量初始化为 3 ,循环从 3 开始,循环语句中,把每次的 3 的倍数也就是 i 累加到 sum 里,循环语句结束后,循环变量每次都加 3 ,就可以直接得到下一个 3 的倍数,最后循环结束,输出 sum 即可。

4、while 和 for 对比

for 和 while 在实现循环的过程中都有初始化判断调整这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候,while 循环的三个部分就比较分散,所以从形式上 for 循环要更优一些。

三、do-while 循环

1、do-while 语法形式

do

{

语句;

}

while( 表达式 );

do后面默认只能跟一条语句,如果有多条语句,需要用{ }将语句括起来。

while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;第一次如果条件都不满足,直接就不进入循环。
而 do while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续执行循环。所以 do-while 循环的循环体至少执行一次。

2、执行流程

在 do while 循环中先执行图上的 “语句”,执行完语句后,在去执行 “判断表达式”,判断表达式的结果是真,则继续循环,执行循环语句;判断表达式的结果是假,则循环结束。

所以在 do while 语句中循环体是至少执行一次的,这是 do while 循环比较特殊的地方。

3、举例

题目要求统计输入的数的位数,由于输入的数至少有一位,所以循环至少执行一次,所以采用 do-while 循环,当然用其他循环也可以,然后以 n 是否为 0 为判断条件,变量 count 用来统计位数(全局变量默认初始化为 0 ),跳出循环后输出 count 即可。

四、break 和 continue 语句

1、break 和 continue 举例

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环就要用到 break 和 continue 这两个关键字,来达到相应的效果。

break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往循环之后执行。

continue 的作用是跳过本次循环 continue 后边的代码

注意:break 和 continue 在各个循环语句中的使用方式基本相同,这里仅以 while 循环举例。

2、break 举例

打印 1,2,3,4 后,当 i 等于 5 的时候,循环到 break 的地方终止,不再打印,不再循环。
所以 break 的作用就是永久的终止循环,只要 break 被执行,break 外的第一层循环就终止了。
那以后我们在循环中,想在某种条件下终止循环,则可以使用 break 来完成我们想要的效果。

注意:在多层嵌套的循环中也可以使用break,但是要注意,一个break只能跳出自己所在的循环, 无法一次性跳出所有的循环

3、continue 举例

注意:程序并未结束

continue 可以帮助我们跳过某一次循环 continue 后边的代码,直接到循环的判断部分,进行下一次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环

同样的代码放到for循环里又有什么效果呢?

在 for 循环中,continue 跳过本次循环中 continue 后边的代码,接下来执行的是 i++,在这里循环变量得到了调整,就没有造成死循环,所以 continue 在 while 循环和 for 循环中略有差异。

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

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

相关文章

【Keil】Keil MDK 已经不再提供 ARM Compiler v5

该问题出现在 Keil MDK v5.12 之后 用必应搜索相关问题,发现早已在 ARM community 提了 How can I install Compiler Version 5 for Keil vision 5 回答给出了这个文档 Documentation - Arm Developer 文档提到了 ARM Compiler 5 的下载地址,但是得登录 …

微信小程序购物车全选反选功能以及合计

微信小程序基于Vant Weapp的购物车功能实现 1、单选 使用微信小程序原生表单组件checkbox和checkbox-group 注意&#xff1a;checkbox原生不支持bind:change事件&#xff0c;checkbox-group支持 <checkbox-group bindchange"handleCheck"><checkbox val…

《OpenCV:视觉世界的魔法钥匙》

《OpenCV&#xff1a;视觉世界的魔法钥匙》 一、OpenCV 是什么1. 起源与发展支持2. 特点与优势3. 编程语言支持 二、OpenCV 的发展历程1. 重要版本发布时间线2. 版本更新内容 三、OpenCV 的主要功能1. 图像处理2. 特征提取3. 目标检测4. 运动分析5. 人脸识别6. 其他功能 四、Op…

openharmony开发资料合集

openharmony官方文档 标准系统方案之瑞芯微RK3568移植案例 1、rk3568平台移植路线 【移植】标准系统方案之瑞芯微RK3568移植案例 - 文章 OpenHarmony开发者论坛 2、内核修改优化 P16_内核移植优化_哔哩哔哩_bilibili 3、北向应用开发视频教程 OpenHarmony开发者的个人空…

莫队算法(优雅的暴力)

小B的询问 题目描述 小B 有一个长为 n n n 的整数序列 a a a&#xff0c;值域为 [ 1 , k ] [1,k] [1,k]。 他一共有 m m m 个询问&#xff0c;每个询问给定一个区间 [ l , r ] [l,r] [l,r]&#xff0c;求&#xff1a; ∑ i 1 k c i 2 \sum\limits_{i1}^k c_i^2 i1∑k​…

【人工智能】用Python构建高效的自动化数据标注工具:从理论到实现

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 数据标注是构建高质量机器学习模型的关键环节,但其耗时耗力常成为制约因素。本篇文章将介绍如何用Python构建一个自动化数据标注工具,结合机器学习和NLP技术,帮助加速数据标注过程。我们将从需求分析入…

DAY35|动态规划Part03|LeetCode:01背包问题 二维、01背包问题 一维、416. 分割等和子集

目录 01背包理论基础&#xff08;一&#xff09; 基本思路 C代码 01背包理论基础&#xff08;二&#xff09; 基本思路 C代码 LeetCode:416. 分割等和子集 基本思路 C代码 01背包理论基础&#xff08;一&#xff09; 题目链接&#xff1a;卡码网46. 携带研究材料 文字…

elasticsearch-如何给文档新增/更新的字段

文章目录 前言elasticsearch-如何给文档新增/更新的字段1. 如何给某些文档新增/更新的字段2. 给所有文档添加/更新一个新的字段3. 测试 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且…

World Labs发布最新3D世界生成模型 | 李飞飞引领AI创新

随着人工智能技术的飞速发展&#xff0c;3D生成模型作为一个新兴领域&#xff0c;正逐步改变我们与虚拟世界的互动方式。2023年12月3日&#xff0c;李飞飞教授领导的AI初创公司World Labs发布了他们的最新成果——一款能够将单张图片转化为完整3D世界的生成模型。这个模型不仅突…

分布式cap

P&#xff08;分区安全&#xff09;都能保证&#xff0c;就是在C&#xff08;强一致&#xff09;和A&#xff08;性能&#xff09;之间做取舍。 &#xff08;即立马做主从同步&#xff0c;还是先返回写入结果等会再做主从同步。类似的还有&#xff0c;缓存和db之间的同步。&am…

cocos creator接入字节跳动抖音小游戏JSAPI敏感词检测(进行文字输入,但输入敏感词后没有替换为*号)

今天更新了某个抖音小游戏的版本&#xff0c;增加了部分剧情&#xff0c;半天过后一条短信审核未通过&#xff0c;emmm…抖音总是能给开发者惊喜…打开电脑看看这次又整什么幺蛾子… 首先是一脸懵逼&#xff0c;后端早已接入了官方的内容安全检测能力了&#xff08;https://de…

软件无线电安全之GNU Radio基础(下)

往期回顾 软件无线电安全之GUN Radio基础(上) 背景 在上一小节中&#xff0c;我们简单介绍和使用了GNU Radio软件的基础功能和模块&#xff0c;同时通过GNU Radio Companion&#xff08;GRC&#xff09;创建了简单的流程图&#xff0c;展示了信号生成、处理和输出的流程。最后…

Gitee配置SSH公钥

采用SSH协议同步Git仓库代码的好处就是高效。在配置好SSH公钥后&#xff0c;不需要每次操作都要输入用户名和密码&#xff08;主要针对命令行来说&#xff09;。 以我个人项目为例。 生成 SSH 公钥 1. 通过命令 ssh-keygen 生成 SSH Key&#xff1a; ssh-keygen -t ed25519…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型AI工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在AI的另一个分支——绘图领域&#xff0c;一款名为Midjourney&#xff08;MJ&#xff…

高级sql技巧

高级SQL技巧包括以下几个方面&#xff1a; 使用视图&#xff08;Views&#xff09;&#xff1a;视图是基于一个或多个表的查询结果集&#xff0c;使用视图可以简化复杂的查询操作并提高可读性。 使用子查询&#xff08;Subqueries&#xff09;&#xff1a;子查询是一个嵌套在主…

算法-字符串-5.最长回文子串

一、题目&#xff1a; 二、思路解析 1.思路&#xff1a; 最长子串——动态数组 2.常用方法&#xff1a; a.字符串的截断 ress.substring(start,end1); 3.核心逻辑&#xff1a; 1.特殊情况&#xff1a;字符串为空或字符串的长度为0 if(snull||s.length())return ""…

避大坑!Vue3中reactive丢失响应式的问题

在vue3中,我们定义响应式数据无非是ref和reactive。 但是有的小伙伴会踩雷&#xff01;导致定义的响应式丢失的问题。 reactive丢失响应式的情况1&#xff08;直接赋值&#xff09; 场景: 1.你定义了一个数据:let datareactive({name:"",age:"" }) 2.然后你…

高中数学:计数原理-二项式定理

文章目录 一、二项式定理与通项公式二、二项式系数的性质 一、二项式定理与通项公式 我们先来看完全平方公式 二、二项式系数的性质

Linux学习笔记14 了解磁盘:何为HDD,SSD?sata?PCIE?分区,MBR,GPT (上)

前文有学习文件系统的概念。介绍了Linux组织文件的方式和文件的分类。 但是最初的时候&#xff0c;最先有的并不是文件系统。而是磁盘。 要我说&#xff0c;最关键的那句话就是&#xff1a;分区存在自己的文件系统。而磁盘存在自己的分区。 磁盘 我们一般指的是在linux中以…

刷题计划day26 回溯(五)回溯止【N 皇后】【解数独】

⚡刷题计划day26 回溯&#xff08;五&#xff09;继续&#xff0c;回溯最后一个专题&#xff0c;今天的是hard题&#xff0c;也是比较经典的题型&#xff0c;可以点个免费的赞哦~ 往期可看专栏&#xff0c;关注不迷路&#xff0c; 您的支持是我的最大动力&#x1f339;~ 目录…