C++语法18 while循环、循环中断break与继续continue

语法阶段已经更新到第18章了,前面的知识你都学会了吗?如果还没有学习前面的知识,请点击👉语法专栏进行学习哦!

目录

while循环

while 死循环

训练:折纸

解析

参考代码

训练:第几项

解析

参考代码

训练:大写字母转换

解析

参考代码

训练:取整数平均值

解析

参考代码

break语句

训练:最小倍数

解析

参考程序

continue语句

训练:非数字个数

解析

参考程序


while循环

愚公移山小故事:“愚公不畏艰难,坚持不懈,挖山不止,最终感动天帝而将山挪走。”

其实愚公移山的过程也是循环的过程,但是并不能确定循环多少次后感动天帝将山移走,所以用for循环并不合适,因为我们不清楚循环的次数(i的范围不确定)。

对于这种不清楚次数的循环,但是知道循环条件的问题,我们可以使用while循环去解决:

while(山未被移完)
{移山;
}

while 死循环

如果循环条件永远成立,循环就会一直执行,造成死循环。试试下面的代码会发生什么事情吧。

while(1)
{cout<<”这是一个死循环\n”;
}

训练:折纸

现在有一张纸,厚度为1 mm,请问需要对折多少次能超过n mm。

【输入格式】输入一个整数n

【输出格式】输出一个整数,表示对折的次数

【输入样例】30

【输出样例】5

 

解析

1.声明整型变量h表示当前纸张的厚度,初始化为1mm,第一次对折后,纸张厚度变为2mm,再对折变成4mm,8mm,16mm,32mm... ...当厚度超过n则停止对折,即:

while(h<=n)
{h*=2;
}

2.我们要求的是对折的次数,声明整型变量cnt表示对折的次数,每对折一次,cnt加1,直到纸张厚度大于n,即在循环体内执行cnt++,即:

while(h<=n)
{cnt++;h*=2;
}

参考代码

#include<iostream>
using namespace std;
int main( )
{int n,h=1,cnt=0;cin>>n;while(h<=n){cnt++;h*=2;}cout<<cnt;return 0;
}

训练:第几项

输入整数n,求1+2+3...在第几项时结果超过n。

【输入格式】输入一个整数n

【输出格式】输出一个整数,表示刚超过n时的数值

【输入样例】50

【输出样例】10

 

解析

声明变量i表示当前项数,初始化为1,声明变量s表示总和,初始化为0,输入整数n,当s>n的时候结束,即:

while(s<=n)
{s=s+i;i++;
}

参考代码

#include<iostream>
using namespace std;
int main( )
{int n,s=0,i=1;cin>>n;while(s<=n){s=s+i;i++;}cout<<i-1;return 0;
}

训练:大写字母转换

输入若干个大写字母,输入'0'时结束,输出对应的小写字母。

【输入格式】若干个空格隔开的大写字母,以'0'结尾

【输出格式】输出每个大写字母对应的小写字母,空格隔开

【输入样例】A C D 0

【输出样例】a c d

解析

声明字符型变量a表示输入的大写字母,循环条件为输入的a不为‘0’,当输入‘0’的时候跳出循环体,循环体内为将大写字母转换成小写字母,即:

cin>>a;
while(a!='0')
{cout<<(char)(a+32)<<" ";cin>>a;
}

参考代码

#include<iostream>
using namespace std;
int main( )
{char a;cin>>a;while(a!='0'){cout<<(char)(a+32)<<endl;cin>>a;}return 0;
}

训练:取整数平均值

输入若干个正整数,以0结尾,求这些整数的平均值(整除)。

【输入格式】若干个空格隔开的整数,以0结尾

【输出格式】输出一个整数,表示输入整数的平均值

【输入样例】1 2 3 4 5 0

【输出样例】3

 

解析

循环体内输入整数a,当a等于0的时候跳出循环,否则将输入的整数保存到整型变量s中,s初始化为0,用cnt来记录输入了几个数字,即:

cin>>a;
while(a!=0)
{cnt++;s+=a;cin>>a;
}

参考代码
#include<iostream>
using namespace std;
int main( )
{int a,s=0,cnt=0;cin>>a;while(a!=0){cnt++;s+=a;cin>>a;}cout<<s/cnt;return 0;
}

break语句

我们在用循环解决问题时,往往在循环没有结束之前,就已经得到了需要的答案。

这时,我们就可以使用break语句来,提前结束循环。(for和while都可以)

训练:最小倍数

输入整数m,n,a,求m~n内最小的a的倍数(数据保证m~n内有a的倍数)。

【输入格式】输入三个空格隔开的整数m,n,a

【输出格式】输出一个整数,表示在m~n内a的最小倍数

【输入样例】1 20 7

【输出样例】7

解析

1.从m到n内寻找a的最小倍数,相当于从m开始,每次加1,测试是否是a的倍数... ... 即:

for(int i=m;i<=n;i++)

2.从m开始,每次加1,如果当前数是a的倍数,则输出并终止循环,循环体内,则可以这样写:

if(i%a==0)
{cout << i;break;
}

参考程序

#include<iostream>
using namespace std;
int main( )
{int m,n,a;cin>>m>>n>>a;for(int i=m;i<=n;i++){if(i%a==0){cout<<i;break;}}return 0;
}

continue语句

continue语句的作用:跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。

注意:continue语句并没有使整个循环终止。

训练:非数字个数

输入若干个字符,以'#'结尾,统计其中非数字字符的个数,不包含结'#'。

【输入描述】若干个空格隔开的字符,以'#'结尾

【输出描述】输出一个整数,表示非数字字符的个数

【样例输入】! @ a 1 4 G #

【样例输出】4

 

解析

1.本题使用while循环,循环体内输入字符型变量a,直到输入'#'的时候才会跳出循环,即:

   while(1){cin>>a;if(a=='#') break;}

2.循环体内需要判断a是否是数字,如果是数字则使用continue语句跳出本次循环,如果不是数字,则使用cnt记下非数字(数字:'0'<=a<='9')的个数,即:

if(a>='0'&&a<='9') continue;
cnt++;

参考程

#include<iostream>
using namespace std;
int main( )
{char a;int cnt=0;while(1){cin>>a;if(a=='#') break;if(a>='0'&&a<='9')  continue;cnt++;}cout<<cnt;return 0;
}

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

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

相关文章

CPN IDE实现分层效果

Shift键鼠标选中要分层的库所和变迁&#xff01;然后create subpage。 Subpage是这样的&#xff0c;不会像CPN tools里面自动生成IN和OUT库所&#xff0c;但是也能正确运行。 虽然父页面在运行中有标红&#xff1a;"port not defined" 错误通常意味着在模型中有一些连…

【QT5】<重点> QT多线程

文章目录 前言 一、QThread创建多线程 二、QMutex基于互斥量的同步 三、QReadWriteLock线程同步 四、QWaitCondition线程同步 五、QSemaphore基于信号量的同步 前言 本篇记录学习QT多线程的知识&#xff0c;参考视频13.1QThread创建多线程程序_哔哩哔哩。若涉及版权问题…

用于测试高精度恒流源电路

目前音圈马达在测试方面并没有专用的工具&#xff0c;只有常规的驱动芯片,针对这一问题设计一种高精度恒流源电路&#xff0c;能够对音圈马达的行程、线性度、磁滞、斜率等参数进行测试&#xff0c;和对音圈马达进行寿命实验。 系统主要包括微处理器、D/A转换、A/D转换、运放恒…

单元测试很难么?

前言 你可能会用单元测试框架&#xff0c;python的unittest、pytest&#xff0c;Java的Junit、testNG等。 那么你会做单元测试么&#xff01;当然了&#xff0c;这有什么难的&#xff1f; test_demo.py def inc(x): return x 1 def test_answer(): assert inc(3) 4 i…

经验分享,CRC(循环冗余校验)在线计算

这里分享一个好用的在线计算CRC的网站。 网址&#xff1a;http://www.ip33.com/crc.html 截图&#xff1a;

Ubuntu22.04系统安装及配置

文章目录 一、选择“安装” 二、选择“语言” 三、安装器更新 四、键盘布局 五、选择安装类型 六、网络配置 七、代理设置 八、镜像地址 九、磁盘划分 十、设置用户名、主机名、登录密码 十一、升级到Ubuntu Pro 十二、SSH设置 十三、选装软件包 十四、开始安装进…

灰度图像直方图均衡化

文章目录 1.实验目的2.需求3.代码4.实验结果 1.实验目的 了解一种最基本的图像增强技术&#xff0c;本质上是对灰度图像进行灰度变换。 2.需求 对给定图像进行灰度直方图展示&#xff0c;然后均衡化后再次展示 3.代码 import cv2 as cv import numpy as np from matplotli…

git常见错误

refusing to merge unrelated histories 如果git merge合并的时候出现refusing to merge unrelated histories的错误&#xff0c;原因是两个仓库不同而导致的&#xff0c;需要在后面加上--allow-unrelated-histories进行允许合并&#xff0c;即可解决问题。 git push origin …

类注释规范

类注释规范 1.1.1 模板配置 模板路径&#xff1a;File–>settings–>Editor–>File and Code Templates–>Includes–>File Header  N A M E &#xff1a;设置类名&#xff0c;与下面的 {NAME}&#xff1a;设置类名&#xff0c;与下面的 NAME&#xff1a;设…

【TB作品】MSP430G2553,单片机,口袋板, 多路温度巡回检测仪的设计

题7 多路温度巡回检测仪的设计 设计一个多路温度检测仪&#xff0c;共有8个测温点&#xff0c;每个点连续检测8次&#xff0c;以平均值代表该点温度&#xff0c;并轮流在LED显示器上显示。测试检测元件为铂热电阻Pt1000, 温度测量范围为100℃ ——500℃&#xff0c;测量精度为1…

如何做电子骑缝章?

制作电子骑缝章的过程可以依据不同情况和所使用的工具而有所不同&#xff0c;但基本思路是确保印章能够跨过页面接缝&#xff0c;以验证文档的完整性。以下是几种常见的方法&#xff1a; 使用专业电子合同平台 选择平台&#xff1a;首先&#xff0c;确保你使用的电子合同平台…

Pointnet++改进即插即用系列:全网首发HeatBlock高计算效率和全局接受野|即插即用,提升特征提取模块性能

简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入HeatBlock,提升性能。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一 2.2 步骤二 2.3 步骤三 1.…

Jlink下载固件到RAM区

Jlink下载固件到RAM区 准备批处理搜索exe批处理调用jlink批处理准备jlink脚本 调用执行 环境&#xff1a;J-Flash V7.96g 平台&#xff1a;arm cortex-m3 准备批处理 搜索exe批处理 find_file.bat echo off:: 自动识别脚本名和路径 set "SCRIPT_DIR%~dp0" set &qu…

【0008day】Shiny的介绍

介绍&#xff1a;Shiny 是一个开源 R 包&#xff0c;它提供了一个优雅而强大的 Web 框架&#xff0c;用于使用 R 构建 Web 应用程序。Shiny 可以帮助您将分析转变为交互式 Web 应用程序&#xff0c;而无需 HTML、CSS 或 JavaScript 知识。 # download R package pkgtest <-…

什么是自动驾驶中的CopyCat?

"CopyCat"这个词通常有两个含义: 字面意思:它可以指一个模仿别人的人,就像猫一样模仿其他猫的行为。在日常用语中,如果有人说某人是个"copycat",他们可能是在说这个人缺乏原创性,总是模仿别人的想法、风格或者行为。 心理学和犯罪学中的含义:在心…

网页应用发布到钉钉Windows客户端需注意事项

现在很多单位在用钉钉了&#xff0c;也一股脑地把很多网页应用转到钉钉上来。 首先要注意的是&#xff0c;如果html或js中新打开页面的话&#xff0c;在浏览器中访问会新建一个标签页&#xff0c;并在新的标签页内显示内容。但是钉钉中&#xff0c;则是打开系统的默认浏览器&am…

计算机体系结构期末复习(一二章)

计算机体系结构期末复习&#xff08;一二章&#xff09; 由于内容比较多&#xff0c;分为两次发出 注意&#xff1a;可能有部分考点遗漏&#xff0c;可能有部分例题没有匹配正确的知识点或被遗漏&#xff0c;欢迎各位补充 第一章 1. 计算机系统的层次性 知识点&#xff1a…

docker重要操作与直连方法

文章目录 前言一、nvidia-docker安装方法1、nvidia-docker安装2、重启动ssh 二、构建镜像1、构建镜像docker拉取构建本地镜像加载构建 2、容器转镜像 前言 docker容器相关操作&#xff0c;包含镜像、容器、删除&#xff0c;特别是容器如何直接连接方法&#xff0c;可类似物理机…

实验室自用LabVIEW软件与商用软件价格差异分析

实验室自用LabVIEW软件与商用软件在价格上的差异源于功能与扩展包、技术支持与服务、使用场景与合规性、更新与维护、市场与定价策略、培训与教育资源及许可证管理与合规审计等方面的不同。商用软件提供更全面的功能和支持&#xff0c;确保高可靠性和合规性&#xff0c;因此价格…

奥特曼谈AI的机遇、挑战与人类自我反思:中国将拥有独特的大语言模型

奥特曼在对话中特别提到&#xff0c;中国将在这个领域扮演重要角色&#xff0c;孕育出具有本土特色的大语言模型。这一预见不仅彰显了中国在全球人工智能领域中日益增长的影响力&#xff0c;也预示着未来技术发展的多元化趋势。 ①奥特曼认为AI在提升生产力方面已显现积极作用&…