[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.hqwc.cn/news/651842.html

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

相关文章

clickhouse与oracle传输数据

参考 https://github.com/ClickHouse/clickhouse-jdbc-bridge https://github.com/ClickHouse/clickhouse-jdbc-bridge/blob/master/docker/README.md clickhouse官方提供了一种方式&#xff0c;可以实现clickhouse与oracle之间传输数据&#xff0c;不仅仅是oracle&#xff0…

python 使用flask_httpauth和pyjwt实现登录权限控制

最近需要用到&#xff0c;学习了一下记录 首先安装依赖 pip install Flask-HTTPAuth pyjwt passlib Welcome to Flask-HTTPAuth’s documentation! — Flask-HTTPAuth documentation Welcome to PyJWT — PyJWT 2.8.0 documentation Passlib 1.7.4 documentation — Passl…

【北京迅为】《iTOP龙芯2K1000开发指南》-第四部分 ubuntu开发环境搭建

龙芯2K1000处理器集成2个64位GS264处理器核&#xff0c;主频1GHz&#xff0c;以及各种系统IO接口&#xff0c;集高性能与高配置于一身。支持4G模块、GPS模块、千兆以太网、16GB固态硬盘、双路UART、四路USB、WIFI蓝牙二合一模块、MiniPCIE等接口、双路CAN总线、RS485总线&#…

Linux驱动开发——(七)Linux阻塞和非阻塞IO

目录 一、阻塞和非阻塞IO简介 二、等待队列 2.1 等待队列头 2.2 等待队列项 2.3 将队列项添加/移除等待队列头 2.4 等待唤醒 2.5 等待事件 三、轮询 四、驱动代码 4.1 阻塞IO 4.2 非阻塞IO 一、阻塞和非阻塞IO简介 IO指的是Input/Output&#xff0c;也就是输入/输…

Ubuntu16.04搭建webrtc服务器

本人查阅无数资料,历时3周搭建成功 一、服务器组成 AppRTC 房间+Web服务器 https://github.com/webrtc/apprtcCollider 信令服务器,在AppRTC源码里CoTurn coturn打洞+中继服务器 Nginx 服务器,用于Web访问代理和Websocket代理。AppRTC 房间+Web服务器使用python+js语言 App…

数字文旅重塑旅游发展新格局:以数字化转型为突破口,提升旅游服务的智能化水平,为游客带来全新的旅游体验

随着信息技术的迅猛发展&#xff0c;数字化已成为推动各行各业创新发展的重要力量。在旅游业领域&#xff0c;数字文旅的兴起正以其强大的驱动力&#xff0c;重塑旅游发展的新格局。数字文旅以数字化转型为突破口&#xff0c;通过提升旅游服务的智能化水平&#xff0c;为游客带…

硬件21、接线端子XH2.54、2.54排针排母、2510接插件、PH2.0、町洋接线端子5.08、ISP接口JTAG插座

XH2.54端子的间距为2.54毫米&#xff0c;2.54排针排母的间距也是2.54mm&#xff0c;2510接插件也是2.54、而PH2.0端子的间距为2.0毫米&#xff0c;町洋接线端子插针间的距离是5.08mm&#xff0c;ISP接口JTAG插座针脚的间距一般也是2.54mm XH2.54 针脚间距为2.54mm 插头 接线…

【算法基础实验】图论-UnionFind连通性检测之quick-find

Union-Find连通性检测之quick-find 理论基础 在图论和计算机科学中&#xff0c;Union-Find 或并查集是一种用于处理一组元素分成的多个不相交集合&#xff08;即连通分量&#xff09;的情况&#xff0c;并能快速回答这组元素中任意两个元素是否在同一集合中的问题。Union-Fin…

实验7:路由冗余协议HSRP配置管理(课内实验以及解答)

实验目的及要求&#xff1a; 理解首跳冗余协议&#xff08;FHRP&#xff09;的工作原理&#xff0c;掌握热备份路由器协议 (HSRP)&#xff08;思科私有协议&#xff09;原理和配置。能够实现网络终端设备虚拟网关的配置和网络故障的灵活切换&#xff0c;完成相应网络的联通性测…

【教程】Google AdSense填报美国和新加坡免税税务信息

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;请不吝给个[点赞、收藏、关注]哦~ 美国免税 如何填写 Google Adsense 税务信息可以免税 | W-8BEN | 紫竹的博客 新加坡免税 中国区AdSense如何添加新加坡税务信息&#xff1f;税…

光伏无人机:巡检无人机解决巡检难题

随着科技的飞速发展&#xff0c;无人机技术已经广泛应用于各个领域&#xff0c;其中光伏无人机在解决光伏电站巡检难题方面发挥了重要作用。光伏无人机以其高效、精准、安全的特点&#xff0c;为光伏电站的巡检工作带来了革命性的变革。 光伏电站通常位于广阔的户外场地&#x…

SpringCloudAlibaba:2.1nacos

概述 概述 简介 Nacos是阿里巴巴开源的服务注册中心以及配置中心 Nacos注册中心Eureka 服务配置Config 服务总线Bus 官网 Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos 名字由来 Naming&#xff1a;名字 Configurations&#xff1a;配置 Service&#xff1a;服务 功能…