C++中的程序流程结构

一、选择结构

1.1 if语句

作用:执行满足条件的语句

if语句的三种形式

  • 单行格式if语句
  • 多行格式if语句
  • 多条件的if语句

#include <iostream>
using namespace std;int main(){//选择结构 单行if语句//用户输入分数,如果分数>600,视为考上一本大学,在屏幕输出int score;cout << "请输入您的分数:";cin >> score;//注意事项 if条件后面不要加;分号if (score > 600) {cout << "恭喜您考上一本大学!" << endl;}//选择结构 多行if语句//用户输入年龄,如果年龄>=18,则输出"你已经成年了",否则输出"你还未成年"int age;cout << "请输入您的年龄:";cin >> age;if (age >= 18) {cout << "你已经成年了" << endl;}else {cout << "你还未成年" << endl;}//多条件if语句//输入一个考试分数 如果大于600分,视为考上一本大学,在屏幕输出//大于500,视为考上二本大学,在屏幕输出//大于400,视为考上三本大学,在屏幕输出//小于400,视为未考上大学,在屏幕输出int exam_score;cout << "请输入您的考试分数:";cin >> exam_score;if (exam_score > 600) {cout << "恭喜您考上一本大学!" << endl;}else if (exam_score > 500) {cout << "恭喜您考上二本大学!" << endl;}else if (exam_score > 400) {cout << "恭喜您考上三本大学!" << endl;}else {cout << "很遗憾,未考上大学!" << endl;system("pause");return 0;
}

1.2 三目运算符

作用:通过三目运算符实现简单的判断

语法:表达式1?表达式2 :表达式3

  • 如果表达式1值为真,执行表达式2,并返回表达式2的结果
  • 如果表达式1值为假,执行表达式3,并返回表达式3的结果
#include <iostream>
using namespace std;int main() {// 三目运算符//创建3个变量 a, b, c//将a和b进行比较,将变量大的值赋给cint a = 10;int b = 20;int c = 0;c = (a > b)? a : b; //如果a大于b,则c等于a,否则c等于bcout<<"c的值为"<<c<<endl;//在C++中三目运算符返回的是变量,可以继续赋值(a > b ? a : b) = 100;cout<<"a的值为"<<a<<endl;cout<<"b的值为"<<b<<endl;system("pause");return 0;
}

1.3 Switch语句

作用:执行多条件分支语句

#include <iostream>
using namespace std;int main()
{	//swicth语句//给电影进行打分//10~9 经典//8~7 很好//6~5 还行//4~3 较差//2~1 很差//0 未评分int score=0;cout << "请输入电影的评分:";cin >> score;cout << "您的评分是:" << score << endl;switch (score){case 10:case 9:cout << "经典"<< endl;break;case 8:case 7:cout << "很好" << endl;break;case 6:case 5:cout << "还行" << endl;break;case 4:case 3:cout << "较差" << endl;break;case 2:case 1:cout << "很差" << endl;break;case 0:cout << "未评分" << endl;break;default:cout << "输入错误" << endl;break;}system("pause");return 0;}

二、循环结构

2.1.1while循环语句

作用:满足循环条件,执行循环语句。

语法:while(循环条件){循环语句}。

解释:只要循环条件为真,就执行循环语句。

注意:在执行循环语句的时候,程序必须提供跳出循环的出口,否则出现死循环。

#include <iostream>
using namespace std;int main()
{//while循环//在屏幕中打印出0~9int i = 0;while (i < 10) {//循环条件cout << i << endl;i++;}system("pause");return 0;
}

2.1.2 猜数字案例

#include <iostream>
using namespace std;
//time系统时间头文件包含
#include <ctime>
int main()
{//添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样srand((unsigned int)time(NULL));//1.系统生成随机数(1~100)int num = rand() % 100 + 1;//生成1~100之间的随机数//cout << "系统生成的随机数为:" << num << endl;//2.玩家进行猜测int value = 0;//玩家猜测的数字while (num != value) {cin >> value;//3.判断玩家的猜测if (value > num) {cout << "猜测的数字太大了!" << endl;}else if (value < num) {cout << "猜测的数字太小了!" << endl;}else {cout << "恭喜你猜对了!" << endl;return 0;}}//猜对  退出游戏//猜错 提示猜的结果 过大或者过小 重新返回第2步cout << "游戏结束!" << endl;system("pause");return 0;}

2.2.1do...while循环

作用:满足循环条件,执行循环语句

语法:do{循环语句} while{循环条件}

注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件

#include<iostream>
using namespace std;
int main() {//do-while循环//在屏幕中输出0~9这10个数字int i = 0;do {cout << i << endl;i++;} while (i < 10);// do-while 和 while 的区别在于 do-while会先执行一次循环语句// 然后再判断条件是否成立,如果成立,则继续执行循环语句,否则退出循环。system("pause");return 0;
}

2.2.2 案例水仙花数

#include<iostream>
using namespace std;
int main() {//水仙花数int i = 100;do {int a = i % 10;//取个位数int b = (i / 10) % 10;//取十位数int c= i / 100;//取百位数if (a*a*a + b*b*b + c*c*c == i) {cout << i << endl;}i++;	}while (i < 1000);

2.3.1 for循环

作用: 满足循环条件,执行循环语句

语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}

#include<iostream>
using namespace std;
int main() {//for循环//从数字0打印到数字9for(int i = 0; i < 10; i++){cout << i << endl;}system("pause");return 0;}

2.3.2 案例敲桌子

#include<iostream>
using namespace std;
int main() {//敲桌子for (int i = 1; i <= 100; i++) {if (i % 10 == 7) {cout << "敲桌子" << i << endl;}else if(i/10%10==7){cout << "敲桌子" << i << endl;}else if (i % 7 == 0) {cout << "敲桌子" << i << endl;}else {cout << i << endl;}}system("pause");return 0;
}

2.4.1 嵌套循环

作用:在循环体中再嵌套一层循环,解决一切实际问题

#include<iostream>
using namespace std;
int main() {//循环嵌套打印星图//打印一行星图//外层执行一次 内层执行1周for (int i = 0; i < 10; i++) {//外层循环for (int j = 0; j < 10; j++) {//内层循环cout << "* ";}cout << endl;}system("pause");return 0;
}

2.4.2 案例乘法口诀表

#include<iostream>
using namespace std;
int main() {// 9*9乘法表for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {cout << i << "x" << j << "=" << i * j << "\t";}cout << endl;}system("pause");return 0;
}

2.5 跳转语句 -break

作用:用于跳出选择结构或者循环结构

break的使用时机

  • 出现在switch条件语句中,作用是终止case并跳出switch
  • 出现在循环语句中,作用是跳出当前的循环语句
  • 出现在嵌套循环中,跳出最近的内层循环语句
#include<iostream>
using namespace std;
int main() {//1.出现在switch条件语句中,作用是终止case并跳出switchcout << "请选择副本的难度" << endl;cout << "1.简单" << endl;cout << "2.普通" << endl;cout << "3.困难" << endl;int select = 0; //创建一个选择结果的变量cin >> select;//输入选择结果switch (select) {case 1://选择简单难度cout << "你选择了简单难度" << endl;break;case 2: //选择普通难度cout << "你选择了普通难度" << endl;break;case 3 : //选择困难难度cout << "你选择了困难难度" << endl;break;default: //输入有误cout << "输入有误,请重新输入" << endl;break;}//2.出现在循环语句中,作用是跳出当前的循环语句for (int i = 0; i < 10; i++) {//判断i是否等于5,如果等于5,跳出当前循环语句if (i == 5) {break;}cout << i << endl;}//3.出现在嵌套循环中,跳出最近的内层循环语句for (int i = 0; i < 10; i++) {for (int j = 0; j < 10; j++) {if (j == 5) {break; //跳出内层循环语句}cout << "* ";}cout << endl;}system("pause");return 0;
}

 

2.6 跳转语句 -continue

作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环(break会跳出循环,continue不会跳出循环)

#include<iostream>
using namespace std;
int main() {//continue 语句的作用是跳过当前循环的剩余语句,直接开始下一轮循环。for (int i = 0; i <= 100; i++) {if (i % 2 == 0) { //如果i是偶数,则跳过当前循环的剩余语句,直接开始下一轮循环。continue; //跳过当前循环的剩余语句,直接开始下一轮循环。}cout << i << endl;}system("pause");return 0;
}

 

2.7 跳转语句 -goto

作用:可以无条件跳转语句

语法:goto标记;

解释:如果标记的名称存在,执行带goto语句时,会跳转到标记位置

#include <iostream>
using namespace std;int main() {//goto语句cout << "1、xxxxx" << endl;cout << "2、yyyyy" << endl;goto flag;cout << "3、zzzzz" << endl;cout << "4、wwwww" << endl;	flag:cout << "5、uuuuu" << endl;cout << "6、iiiii" << endl;system("pause");return 0;
}

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

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

相关文章

【SpringBoot实战篇】获取用户详细信息-ThreadLocal优化

1 分析问题 对token的解析当初在拦截器中已经写过。期待的是在拦截器里写了&#xff0c;在其他地方就不写了&#xff0c;应该去复用拦截器里面得到的结果 2 解决方式-ThreadLocal 2.1提供线程局部变量 用来存取数据: set()/get()使用ThreadLocal存储的数据, 线程安全 2.2过程图…

OneFlow新概念清单,AI深度学习的革命性突破(AI写作)

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

路由过滤与引入

1、实验拓扑 2、实验要求 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 上使用 1oopback口模拟业务网段 2、运行 oSPF&#xff0c;各自协议内部互通 3、R1 和 R2 运行 RIPv2,R2&#xff0c;R3和R4在 RIP 和 oSPF 间配置双向路由引入,要求除 R4 上的业务…

mPEG-Cyanur,Methoxy PEG Cyanur具有良好的生物相容性

【试剂详情】 英文名称 mPEG-Cyan&#xff0c;mPEG-Cyanur&#xff0c;Methoxy PEG Cyanur&#xff0c;Methoxy PEG Cyan 中文名称 聚乙二醇单甲醚三聚氯氰&#xff0c;甲氧基-聚乙二醇-氰尿酸 外观性状 由分子量决定&#xff0c;固体或者粘稠液体。 分子量 0.4k&#x…

自己写的爬虫小案例

网址&#xff1a;aHR0cDovL2pzc2NqZ3B0Lmp4d3JkLmdvdi5jbi8/dXJsPS92aWV3L3dvcmtpbmdVbml0L3dvcmtpbmdVbml0Lmh0bWw 这串代码能够爬取勘察单位企业的详细信息。 import requests import time import csv f open(勘察单位公司信息.csv,w,encodingutf-8,newline) csv_writer …

从阿里云OSS迁移到AWS S3的步骤

随着企业数字化转型的加速,云计算成为企业IT基础设施不可或缺的部分。对象存储作为云计算的重要组成部分,为企业提供了可靠、安全、低成本的数据存储和管理解决方案。在选择对象存储服务时,企业需要根据自身需求和发展战略来进行全面评估。我们九河云&#xff0c;获得AWS官方认…

探索C++20高级编程:新特性、技巧与性能优化

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

mPEG-Biotin,Methoxy PEG Biotin在免疫亲和层析、荧光标记和生物传感器等领域发挥关键作用

【试剂详情】 英文名称 mPEG-Biotin&#xff0c;Methoxy PEG Biotin 中文名称 聚乙二醇单甲醚生物素&#xff0c;甲氧基-聚乙二醇-生物素 外观性状 由分子量决定&#xff0c;固体或者粘稠液体。 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#xff0c;3.…

什么因素可以影响到代理IP稳定性?爬虫代理IP有哪些作用?

一、什么因素可以影响到代理IP稳定性 代理IP的稳定性受到多种因素的影响&#xff0c;以下是一些主要的因素&#xff1a; 代理IP的质量&#xff1a;不同的代理IP提供商提供的代理IP质量参差不齐&#xff0c;一些低质量的代理IP可能经常出现连接问题或速度慢的情况&#xff0c;…

力扣HOT100 - 104. 二叉树的最大深度

解题思路&#xff1a; class Solution {public int maxDepth(TreeNode root) {if (root null) return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;} }

利用OpenCV4.9制作自己的线性滤波器!

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9使用 inRange 的阈值操作 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 f…

爬虫零基础学习,第一天,安装环境,requests库常用命令的讲解

Python爬虫 爬虫学习思路 URL内容获取&#xff0c;requests的基本常用语法 import requests # 先向目标网站发送请求 url "http://www.baidu.com" r requests.get(url) # 可以用看一下访问码返回值是不是200&#xff0c;若是200则表示访问成功 print(r.status_…

RustGUI学习(iced)之小部件(一):如何使用按钮和文本标签部件

前言 本专栏是学习Rust的GUI库iced的合集&#xff0c;将介绍iced涉及的各个小部件分别介绍&#xff0c;最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个&#xff0c;目前处于发展中&#xff08;即版本可能会改变&#xff09;&#xff0c;本专栏基于版本0.12.1. 概述…

前端CSS基础8(盒子模型(margin、border、padding、content))

前端CSS基础8&#xff08;盒子模型&#xff08;margin、border、padding、content&#xff09;&#xff09; CSS盒子模型CSS中常用的长度单位元素的分类&#xff0c;各个元素的显示模式修改元素的显示模式&#xff08;类型&#xff09;盒子模型的组成部分盒子内容区-contentCSS…

关于分布式锁的释放和spring事务提交时机不符合预期从而带来的数据不一致的问题

提要 首先注意&#xff0c;本文探讨的不是分布式事务&#xff0c;请读者注意区分&#xff01; 在我们的日常开发种&#xff0c;分布式锁和spring事务是常见的两种控制数据一致性的方式。 分布式锁和spring事务各自的作用就不做阐述了&#xff0c;不是本文重点&#xff0c;本文…

AIGC技术的发展现状与未来趋势

AIGC&#xff08;人工智能生成内容&#xff09;技术是近年来快速发展的领域之一&#xff0c;它涉及使用人工智能来创建或编辑内容&#xff0c;包括文本、图像、音乐和视频等。这项技术的进步为各个行业带来了革命性的变化&#xff0c;同时也引发了一系列伦理和风险问题。 一、技…

宜搜科技死磕港交所上市:从搜索引擎到广告投放,业绩疲态凸显

近日&#xff0c;宜搜科技控股有限公司&#xff08;下称“宜搜科技”&#xff09;向港交所递交招股书&#xff0c;计划在香港主板上市&#xff0c;中银国际为其独家保荐人。 值得注意的是&#xff0c;宜搜科技已在资本市场辗转多年。该公司曾于2014年向纽交所递交上市申请&…

CentOS7编译jsoncpp静态库

1. 官网下载源码 github地址&#xff1a;GitHub - open-source-parsers/jsoncpp at update 2. 编译 Unzip jsoncpp-master.zip Cd jsoncpp-master mkdir -p ./build/debug cd ./build/debug/ cmake -DCMAKE_BUILD_TYPEdebug -DBUILD_SHARED_LIBSOFF -DCMAKE_ARCHIVE_OUTPUT_D…

docker快速搭建部署mqtt

文章目录 前言一、mqtt是什么&#xff1f;二、使用步骤1.引入库2.创建临时容器3.创建挂在目录4.将临时容器的配置挂载到宿主机中5.删除临时容器6.运行容器并挂载文件7.登录EMQX内置的管理控制台 总结 前言 一、mqtt是什么&#xff1f; MQTT&#xff08;Message Queuing Teleme…

Ts类型体操详讲 之 extends infer (下)

目录 1、函数 &#xff08;1&#xff09;提取参数类型 &#xff08;2&#xff09;提取返回值类型 2、构造器 &#xff08;1&#xff09;提取构造器返回值 &#xff08;2&#xff09;提取构造器参数类型 3、索引类型 本章我们继续上节的内容继续&#xff0c;展示我们对ex…