[C++基础学习]----03-程序流程结构之循环结构详解

前言

        在C++程序中,循环结构在用于重复执行一段代码块,直到满足某个条件为止。循环结构有多种形式,包括while循环、do-while循环和for循环。

正文

01-循环结构简介

       1、while循环语句:

        while循环在每次循环开始前检查条件是否为真,如果真则执行循环体中的代码块,然后继续检查条件。

        语法格式为:

while (condition)
{// code to be executed while condition is true
}

        2、do-while循环语句:

        do-while循环先执行一次循环体中的代码块,然后在每次循环结束后检查条件是否为真,如果真则继续执行。

        语法格式为:

do
{// code to be executed
} while (condition);

        3、for循环语句:

        for循环是一种计数循环,通过初始化、条件判断和更新计数器来控制循环的执行次数。

        语法格式为:

for (initialization; condition; update)
{// code to be executed for each iteration
}

02-while循环

        具体使用代码和解释如下:

#include<iostream>
using namespace std;int main()
{//循环结构 while//输出0~9十个数int num = 0;//while后的括号中一定要写循环条件,还有括号之后不能加分号while (num < 10){//num++;在这个位置输出1~10cout << num << endl;num++;//在这个位置输出0~9}system("pause");return 0;}

03-案例-猜数字游戏

        具体使用代码和解释如下:

#include<iostream>
using namespace std;
#include <ctime>
int main()
{// 若想每次生成的随机数都不相同,需要加入一个随机数种子,利用系统时间生成随机数srand((unsigned int)time(NULL));//1、首先系统生成一个随机数int num = rand() % 100 + 1;     // rand()%100这样生成一个0-99的随机数  rand()%100+1生成1-100的随机数
//	cout << num << endl;   // 随机生成了一个数,范围在1-100//2、玩家进行猜测int val = 0;  //玩家输入数据int num1 = 0;while (num1<5){cin >> val;cout << "玩家输入的值为:" << val << endl;//3、判断玩家的猜测// 猜测错误   提示猜的结果,过大或者过小 重新返回第二步if (val > num){cout << "猜测过大" << endl;}else if (val < num){cout << "猜测过小" << endl;}else{cout << "恭喜您猜测正确" << endl;break; // 可以使用该关键字退出循环}num1++;}cout << "不好意思,挑战失败" << endl;// 猜测正确   退出游戏// 猜测错误   提示猜的结果,过大或者过小 重新返回第二步system("pause");return 0;  }

04-do-while语句

        具体使用代码和解释如下:

#include<iostream>
using namespace std;int main()
{int num = 0;//do//{//	cout << num << endl;//	num++;//}//while (num < 10);//do while 与while 的区别:前者先执行一次输出,在进入循环。后者不会先执行while (num<10)//这个会先判断循环条件,再进行输出。{cout << num << endl;num++;}system("pause");return 0;
}

05-案例-水仙花数

        具体使用代码和解释如下:

#include<iostream>
using namespace std;int main()
{//1、先打印所有的三位数字int num = 100;do{//2、从所有三位数中找到水仙花数int a = 0;//个位int b = 0;//十位int c = 0;//百位a = num % 10;//获取三位数中个位数的方法b = num / 10 % 10;//获取十位数c = num / 100;//获取百位数if (a*a*a + b*b*b + c*c*c == num)//如果是水仙花数,就打印出来{cout << num << endl;}num++;} while (num < 1000);//只打印三位数// 	int num = 0;
// 	while (num<100)
// 	{
// 		cout << num << endl;
// 		num++;
// 	}system("pause");return 0;}

06-for循环

        具体使用代码和解释如下:

#include<iostream>
using namespace std;int main()
{//for循环//打印数字0~9// for的括号里包含了三种句子,起始表达式;条件表达式;末尾循环体for (int i = 0; i < 10; i++)//i++可以写到循环体里面,也可以写到括号里//这就是for循环更加精辟的地方,代码行数更少{cout << i << endl;}//此程序先执行int i=0;然后先判断i<10,之后输出0,接着执行i++,持续循环system("pause");return 0;}

07-案例-敲桌子

        具体使用代码和解释如下:

#include<iostream>
using namespace std;int main()
{//1、先输出1~100个数字for (int i= 1; i <101; i++){//2、找到特殊的数字,改为输出敲桌子,7的倍数,十位有7,个位有7if (i % 7 == 0 || i % 10 == 7||i/10==7)//特殊数字,输出敲桌子{cout << "敲桌子" << endl;}else //不是特殊数字,直接输出{cout << i << endl;}}system("pause");return 0 ;}

08-嵌套循环

        具体使用代码和解释以及运行结果如下:

#include<iostream>
using namespace std;int main()
{//嵌套循环,输出一个星图//打印一行星图//外层循环一次,内层循环一周for (int i = 0; i < 10; i++)//外层循环/*int i = 0;while(i<10)*/{for (int j = 0; j < 10; j++)//内层循环{cout << "* "; //<< endl;这样直接在后面书写endl;,打印出的是一条竖线}/*i++;*/cout << endl;//当endl,这样写的时候,可以打印出横向的}system("pause");return 0;
}

09-案例-打印99乘法表

        具体使用代码和解释以及运行结果如下:

#include<iostream>
using namespace std;int main()
{//乘法口诀表//打印行数for (int i = 1; i <= 9; i++){//cout << i << endl;for (int j = 1; j <= i; j++)//行数小于等于列数{cout <<j<<"*"<<i<<"= "<<j*i<<"\t";//输出j(数)*i(数)=j*i,\t用来对齐}cout<< endl;//cout<<endl,写在这里,是为了不让上一步执行换行操作}system("pause");return 0;
}

总结

        循环结构允许程序重复执行特定的代码块,能够简化代码、提高效率并实现复杂的算法。在实际编程中,循环结构是经常使用的重要部分,能够有效地处理重复性任务和数据处理。

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

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

相关文章

【利兹】XJCO3910/COMP391001 Combinatorial Optimisation组合优化/运筹学 cw考试资料辅导

COMP391001| XJCO3910 (36642) 西交利兹院 Combinatorial Optimisation组合优化/运筹学 资料or辅导 需要请私聊 1.独家近年考试题 包你高分 2. cw and 官方标准答案 3. worksheets and solutions

【docker】安装openjdk

查看可用的 openjdk版本 docker hub 查看地址&#xff1a;https://hub.docker.com/_/openjdk 此图片已被正式弃用&#xff0c;建议所有用户尽快找到并使用合适的替代品。其他官方形象替代品的一些例子&#xff08;按字母顺序列出&#xff0c;没有有意或暗示的偏好&#xff09;…

机器学习:深入解析SVM的核心概念(问题与解答篇)【一、间隔与支持向量】

直接阅读原始论文可能有点难和复杂&#xff0c;所以导师直接推荐我阅读周志华的《西瓜书》&#xff01;&#xff01;然后仔细阅读其中的第六章&#xff1a;支持向量机 间隔与支持向量 问题一&#xff1a;什么叫法向量&#xff1f;为什么是叫法向量 在这个线性方程中&#xff…

给大一大二师生的忠告,如何在校招中脱颖而出做到降维打击

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

[超详细]Java子父类树形结构查询和删除[小白]

目录 前言 1、查询子父类通过树形结构封装起来 一、创建实体类 二、创建mapper类 三、创建service和serviceImpl类 四、创建controller类 2、删除该父类下的所有子类&#xff0c;并且删除自己 controller层 service和serviceImpl层 总结 前言 [超详细]Java子父类树形…

STM32与Proteus的串口仿真详细教程与源程序

资料下载地址&#xff1a;STM32与Proteus的串口仿真详细教程与源程序 资料内容 包含LCD1602显示&#xff0c;串口发送接收&#xff0c;完美实现。 文档内容齐全&#xff0c;包含使用说明&#xff0c;相关驱动等。 解决了STM32的Proteus串口收发问题。 注意&#xff1a;每输…

Datart 扩装下载功能之PDF和图片下载

Datart 扩装下载功能之PDF和图片下载 首先下载依赖 yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts -y 然后下载安装chrome yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 查看chrome版本号 google…

基于Vue3实现的 宫格 图片摆放

一个可以支持无限宫格的 vue3实现 本来要参考微信群头像的规则实现&#xff0c;网上找到一大堆类似的需求&#xff0c;奈何XXX折磨人&#xff0c;九宫格已经不能满足ta了。 当前代码实现了………… 好多东西(可以多宫格).具体的看效果图 code <style scoped langless> .…

AI预测体彩排列3第2套算法实战化测试第5弹2024年4月27日第5次测试

今天继续进行新算法的测试&#xff0c;今天是第5次测试。好了&#xff0c;废话不多说了&#xff0c;直接上图上结果。 2024年4月27日体彩排3预测结果 6码定位方案如下&#xff1a; 百位&#xff1a;6、2、1、7、8、9 十位&#xff1a;8、9、4、3、1、0 个位&#xff1a;3、7、8…

【SpringBoot整合系列】SpringBoot整合Redis[附redis工具类源码]

目录 SpringBoot整合Redis1.下载和安装Redis2.新建工程&#xff0c;导入依赖3.添加配置4.先来几个基本的示例测试代码输出结果用redis客户端查看一下存储内容 5.封装redis工具类RedisKeyUtilRedisStringUtilRedisHashUtilRedisListUtilRedisSetUtilRedisZsetUtil备注 6.测试通用…

node.js 解析post请求 方法二

前提&#xff1a;以前面发的node.js解析post请求方法一为模板&#xff0c;具体见 http://t.csdnimg.cn/ABaIn 此文我们运用第二种方法&#xff1a;使用第三方模块formidable对post请求进行解析。 1》代码难点 *** 在Node.js中使用formidable模块来解析POST请求主要涉及到处理…

IO流基础

IO流介绍 1.什么是IO流&#xff1f; 流是一种抽象概念&#xff0c;它代表了数据的无结构化传递。按照流的方式进行输入输出&#xff0c;数据被当成无结构的字节序列或字符序列。从流中取得数据的操作称为提取操作&#xff0c;而向流中添加数据的操作称为插入操作。用来进行输入…

JVM (Micrometer)监控SpringBoot(AWS EKS版)

问题 怎样使用JVM (Micrometer)面板&#xff0c;监控Spring&#xff1f;这里不涉及Prometheus和Grafana&#xff0c;重点介绍与Micrometer与Springboot&#xff0c;k8s怎样集成。 pom.xml 引入依赖&#xff0c;如下&#xff1a; <properties><micrometer.version&…

免费简单好用的内网穿透工具(ngrok、natapp),微信回调地址配置

B站视频地址 文章目录 Natapp1、登录注册账号、下载软件2、使用2-1、购买隧道、查看token2-2、端口穿透 Ngrok1、登录注册账号、下载软件2、使用2-1、获取并设置 token2-2、使用 3、隧道 微信回调配置1、注册测试公众号2、回调代码3、回调配置 在一些特殊的场景下&#xff0c;需…

多种方法求1+12+123+1234……

有网友出了一道题&#xff1a; 从键盘输入一个小于10的正整数n&#xff0c;计算1121231234……&#xff0c;即前n项之和。 第一眼看到题目&#xff0c;直觉告诉我必须使用嵌套的两个for循环&#xff0c;里面的循环生成每一项&#xff0c;外面的循环求和。错误的方向和思路让我…

基于RBF-PID控制器的风力发电系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于RBF-PID控制器的风力发电系统simulink建模与仿真,对比PID控制器和RBF-PID控制器的控制结果。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB2022a 0050 4.系…

Unity进阶之ScriptableObject

目录 ScriptableObject 概述ScriptableObject数据文件的创建数据文件的使用非持久数据让其真正意义上的持久ScriptableObject的应用配置数据复用数据数据带来的多态行为单例模式化的获取数据 ScriptableObject 概述 ScriptableObject是什么 ScriptableObject是Unity提供的一个…

有没有电脑桌面监控软件|十大电脑屏幕监控软件超全盘点!

电脑桌面监控软件已经成为许多领域不可或缺的工具。 无论是企业为了保障数据安全和提高工作效率&#xff0c;还是家长为了监督孩子的学习&#xff0c;甚至是个人为了记录电脑使用行为&#xff0c;都需要这类软件的支持。 本文将对市面上十大电脑屏幕监控软件进行超全盘点&…

智能文案生成器,文案生成改写很强大

在当今数字化时代&#xff0c;随着人工智能的迅猛发展&#xff0c;智能文案生成器正逐渐成为营销和创作领域的一大利器。这些智能工具不仅能够快速生成文案&#xff0c;还能够进行文案改写&#xff0c;使得文案生成的过程更加高效、便捷。正是在这样的背景下&#xff0c;智能文…

CAT:contig稳健物种分类

安装 mamba create -n CAT python3.10 diamond prodigal cd SoftWare git clone https://github.com/MGXlab/CAT_pack chmod 755 给权限 自己构建数据库 names.dmp nodes.dmp文件可以在Kraken2的文件里面找到 Kraken2Bracken&#xff1a;宏基因组物种注释_kracken2配合bracke…