【C++ 程序设计入门基础】- 第3节-循环结构02

目录

while 语句

案例 while 循环

输入一个整数 n ,输出 1~n 的所有整数。

查看运行结果:

while 语句结构解析

do while 语句

 案例 do while 循环

输入一个整数n,输出1~n的所有整数。

查看运行结果

 while、do while的区别

for、while的区别

1、 关于 for 语句省略判定条件时的案例

 查看运行结果

2、关于 for 循环判定可以指定初始变量值,这个看结果体就知道,非常显而易见了,此处不做案例解析了。

3、如果循环体中包含continue,for语句跳到循环更新处,while语句直接跳到循环条件处。

输入一个整数n,输出1~n的所有整数,跳过3的倍数。

4、无法预知循环次数,或者循环更新不是规律的增减时,用while语句。

 写在最后


while 语句

while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会一直执行,直到条件不成立,while循环才会结束。

案例 while 循环

输入一个整数 n ,输出 1~n 的所有整数。
#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	   输入一个整数 n ,输出 1~n 的所有整数。
	**/
	int n;
	cin>>n;
	int i = 1;
	while(i<=n){
		cout<<i<<"\n";
		i++;
	}
	cout<<"this is a while test";
	return 0;
}
查看运行结果:

while 语句结构解析

do while 语句

 do…while 循环语句先要执行一次大括号内的代码再判断循环条件。

 案例 do while 循环

输入一个整数n,输出1~n的所有整数。
#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	   输入一个整数 n ,输出 1~n 的所有整数。
	**/
	int n;
	cin>>n;
	int i = 1;
	do{
		cout<<i<<endl;
		i++;
	}while(i<=n);
	cout<<"this is a while test";
	return 0;
}
查看运行结果

注:do while循环体至少执行一次。 

 while、do while的区别

while语句是先判断循环条件,再决定是否执行循环体。

do while语句是先执行循环体,再判断循环条件,至少执行一次循环体。

for、while的区别

  1. for语句省略了判断条件时,将认为条件为true。
  2. for语句可以用初始化语句声明一个局部变量,while语句不可以。
  3. 如果循环体中包含continue,for语句跳到循环更新处,while语句直接跳到循环条件处。
  4. 无法预知循环次数,或者循环更新不是规律的增减时,用while语句。 

1、 关于 for 语句省略判定条件时的案例

#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	*  输入一个整数n,输出1~n的所有整数。
	*  for 语句省略判定条件时
	**/
	int n;
	cin>>n;
	int i=1;
	for(;;){
		cout<<i<<"\n"<<endl;
		i++;
		if(i>n)
			break;
	}
	return 0;
}
 查看运行结果

2、关于 for 循环判定可以指定初始变量值,这个看结果体就知道,非常显而易见了,此处不做案例解析了。

3、如果循环体中包含continue,for语句跳到循环更新处,while语句直接跳到循环条件处。

输入一个整数n,输出1~n的所有整数,跳过3的倍数。

左边 for 循环中,遇到 continue,下一步程序直接到循环更新的 i++;

右边 while 循环中,遇到 continue ,下一步程序直接到循环条件判定的 i<=n;

此处需要特别注意 while 语句一定要有循环结束的条件。

4、无法预知循环次数,或者循环更新不是规律的增减时,用while语句。

 写在最后

大家可以自行练习一些相关的循环语句的使用。

eg:

  • 一直输入n,并输出,直到n=0停止。
  • 输出1-100之间的所有3的倍数。
  • 输出1-100之间的所有能被3整除不能被5整除的数。

拓展:

 这里 for 循环内初始值,终止条件判定值以及循环更新值,这里可以根据实际场景设置多个变量值。

下一节,给大家讲解 C++ 中关于函数的用法。


人生苦短,拒绝内卷。我是跟着飞哥学编程,一个一心向阳,向阳而生,努力向上生长的年轻人。加油兄弟们…… 

这篇文章对您学习循环语句,有些许帮助的话,还请您动动发财的小手,帮小编点赞收藏一下吧^_^,小编万分感谢,您的点赞就是对小编最大的 支持与鼓励。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go压测工具

前言 在做Go的性能分析调研的时候也使用到了一些压测方面的工具&#xff0c;go本身也给我们提供了BenchMark性能测试用例&#xff0c;可以很好的去测试我们的单个程序性能&#xff0c;比如测试某个函数&#xff0c;另外还有第三方包go-wrk也可以帮助我们做http接口的性能压测&…

TCP为什么可靠之“重传机制”

TCP重传机制 TCP针对数据包丢失的情况&#xff0c;会通过重传机制解决&#xff0c;包括像超时重传、快速重传、选择确认SACK、D-SACK 超时重传 TCP会设置一个定时器&#xff0c;如果在发送数据之后的规定时间内&#xff0c;没有收到对方的ACK报文&#xff0c;就会触发重新发…

【Qt开发流程】之容器类2:使用STL风格迭代器进行遍历

概述 对于每个容器类&#xff0c;都有两种stl风格的迭代器类型:一种提供只读访问&#xff0c;另一种提供读写访问。应该尽可能使用只读迭代器&#xff0c;因为它们比读写迭代器快。 STL迭代器的API以数组中的指针为模型。例如&#xff0c;操作符将迭代器推进到下一项&#xf…

vue2+datav可视化数据大屏(1)

开始 &#x1f4d3; 最近打算出一个前端可视化数据大屏的系列专栏&#xff0c;这次将很全面的教大家设计可视化大屏&#xff0c;从开始到打包结束&#xff0c;其中&#xff0c;包括如何设计框架&#xff0c;如何封装axios&#xff0c;等等&#xff0c;本次使用的数据均为mock数…

关于AllowBeanDefinitionOverriding属性设置问题

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

二叉树的OJ练习(二)

通过前序遍历数组构建二叉树 题目&#xff1a;通过前序遍历的数组&#xff08;ABD##E#H##CF##G##&#xff09;构建二叉树 TreeNode* TreeCreat(char* a,int* pi) {if(a[*pi] #){(*pi);return NULL; }TreeNode* root (TreeNode*)malloc(sizeof(TreeNode));if(root NULL){p…

【Unity动画】Avatar Mask

创建 Avatar Mask可以设置那一部分骨骼运动和不运动 然后放在状态机里面的层中来混合 【后续完善】

前端入门:HTML初级指南,网页的简单实现!

代码部分&#xff1a; <!DOCTYPE html> <!-- 上方为DOCTYPE声明&#xff0c;指定文档类型为HTML --> <html lang"en"> <!-- html标签为整个页面的根元素 --> <head> <!-- title标签用于定义文档标题 --> <title>初始HT…

快速测试 3节点的redis sentinel集群宕机2个节点以后是否仍能正常使用

有同事问我&#xff0c;三个redis sentinel节点&#xff0c;宕机两个节点以后&#xff0c;是否还能够正常的通过redis sentinel正常访问redis的数据。我想了想&#xff0c;理论上是可以的&#xff0c;但是我没试过&#xff0c;今天有时间就测试了一下。搭建环境和测试代码的过程…

Linux Component概述和高通component的使用

1 Linux为什么要引入Component框架&#xff1f; 为了让subsystem按照一定顺序初始化设备才提出来的。 subsystem中由很多设备模块&#xff0c;内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video …

虚拟化之通用计时器

Arm架构包含通用定时器(Generic Timer),这是每个处理器中都有的一组标准化定时器。通用定时器包括一组比较器,这些比较器与一个共同的系统计数进行比较。当比较器的值等于或小于系统计数时,该比较器会生成中断。在下图中,我们可以看到系统中的通用定时器(橙色)以及其比…

HTML+CSS+JavaScript制作简单轮播图

一 运行效果 二 图片资源 三 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>img{position:absolute;top:6%;left:20%;width:800px;height:240px;}.picture {back…

【FMCW毫米波雷达设计 】 — FMCW波形

原书&#xff1a;FMCW Radar Design 1 引言 本章研究驱动FMCW雷达的主要波形:线性调频(LFM)波形。我们研究信号的行为及其性质。随后&#xff0c;本章讨论了匹配滤波理论&#xff0c;并研究了压缩这种波形的技术&#xff0c;特别是所谓的拉伸处理&#xff0c;它赋予FMCW雷达极…

最长子序列问题(LCS)--动态规划解法

题目描述&#xff1a; 如果Z既是X的子序列&#xff0c;又是Y的子序列&#xff0c;则称Z为X和Y的公共子序列。 如果给定X、Y&#xff0c;求出最长Z及其长度。 示例&#xff1a; 输入 ABCPDSFJGODIHJOFDIUSHGD OSDIHGKODGHBLKSJBHKAGHI 输出 SDIHODSHG 9 分析&#xff1a…

课堂练习4.2:页式内存管理

4-3 课堂练习4.2:页式内存管理 创建一个进程(创建进程是在磁盘中),进程以字节为单位编号,然后再进程分为许多页(每页 4KB ),内存中有对应的页框(设定同页)。通过页表(记录页和页框的对应关系),将最需要的页调入内存,其他页留在磁盘中。根据 CPU 的需要动态的更新…

鸿蒙开发之封装优化

面向对象开发离不开封装&#xff0c;将重复的可以复用的代码封装起来&#xff0c;提高开发效率。 基于之前的List&#xff0c;对代码进行封装。 1、抽取component 将List的头部抽离出来作为一个新的component。可以创建一个新的ArkTS文件&#xff0c;写我们的头部代码 为了…

Springboot获取jar版本方法

Springboot获取jar版本方法 方案一: 通过jar的pom.properties文件获取 获取demo Properties properties new Properties(); try {properties.load(RakicAppInfo.class.getResourceAsStream("/META-INF/maven/com.rakic.framework/rakic-app-springboot-start/pom.pro…

Kubernetes里的DNS;API资源对象ingress;Kubernetes调度;节点选择器NodeSelector;节点亲和性NodeAffinity

Kubernetes里的DNS K8s集群内有一个DNS服务&#xff1a; kubectl get svc -n kube-system |grep dns测试&#xff1a; 在tang3上安装bind-utils,目的是安装dig命令 yum install -y bind-utils apt install dnsutils #ubuntu上 解析外网域名 dig 10.15.0.10 www.baidu.com…

JavaScript-节点操作

节点操作 DOM节点 DOM节点&#xff1a;DOM树里每一个内容都称之为节点 节点类型&#xff1a; 元素节点 所有的标签 比如body、divhtml时跟节点 属性节点 所有的属性&#xff0c;比如href 文本节点 所有的文本 其他 查找节点 节点的关系&#xff1a;针对的找亲戚返回的都是…

63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到右下角…