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进行比较,将变量大的值赋给c
	int a = 10;
	int b = 20;
	int c = 0;
	
	c = (a > b)? a : b; //如果a大于b,则c等于a,否则c等于b
	cout<<"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~9
	int 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打印到数字9
	for(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并跳出switch
	cout << "请选择副本的难度" << 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.mfbz.cn/a/570069.html

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

相关文章

代码随想录 Day19 字符串 | LC28 实现strStr() 【KMP经典题目】

六、实现strStr() 题目&#xff1a; 力扣28&#xff1a;找出字符串中第一个匹配的下标 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack…

全身照怎么缩小做头像?在线图片改大小尺寸的方法

在日常工作中&#xff0c;有不少人喜欢把自己的全身照作为微信或者QQ头像&#xff0c;这时候就经常遇到一个问题&#xff0c;就是图片尺寸太大&#xff0c;无法完整的展现&#xff0c;那么这个时候该怎么处理呢&#xff1f;可以试试下面介绍的这个在线图片改大小尺寸的方法&…

上位机图像处理和嵌入式模块部署(树莓派4b的一种固件部署方法)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果软件开发好了之后&#xff0c;下面就是实施和部署。对于树莓派4b来说&#xff0c;部署其实就是烧录卡和拷贝文件。之前我们烧录卡&#xff0c;…

YashanDB连获多项权威认证

近期&#xff0c;YashanDB产品能力再获认可&#xff0c;顺利通过多项权威测试认证&#xff0c;包括通过《数据库政府采购需求标准(2023年版)》测评&#xff1b;通过国密检测机构测试&#xff0c;产品支持GB/T38636-2020《信息安全技术传输层密码协议(TLCP)》国标协议&#xff1…

BRC铭文NFT铸造质押挖矿系统开发运营

区块链技术的不断演进与应用拓展&#xff0c;为数字资产领域带来了更多可能性。BRC铭文NFT铸造质押挖矿系统的开发与运营&#xff0c;将为用户提供一种全新的数字资产体验&#xff0c;下文将介绍其版/需求方案/逻辑项目。 1. 系统概述 BRC铭文NFT铸造质押挖矿系统旨在结合区块…

『docker』 容器虚拟化技术之空间隔离实战

文章目录 容器虚拟化基础之 NameSpaceNameSpace 隔离实战实战目的基础知识dd 命令详解mkfs 命令详解df 命令详解mount 命令详解unshare 命令详解 实战操作一&#xff08;PID 隔离&#xff09;实战操作二&#xff08;Mount 隔离&#xff09; 容器虚拟化基础之 NameSpace 什么是…

RepViT:当MobileNet遇到ViT

paper&#xff1a;https://arxiv.org/abs/2307.09283 code&#xff1a;https://github.com/THU-MIG/RepViT 目录 0. 摘要 1. 引言 2. 相关工作 3. 方法 3.1. 准备工作 3.2. block设计 3.3. 宏观设计 3.4. 微观设计 3.5. 网络结构 4. 实验 4.1. Image Classification …

Day:动态规划 LeedCode 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

123. 买卖股票的最佳时机 III 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前出售掉之前的股票&a…

系统架构设计精华知识

数据流风格&#xff1a;适合于分阶段做数据处理&#xff0c;交互性差&#xff0c;包括&#xff1a;批处理序列、管理过滤器。调用/返回风格&#xff1a;一般系统都要用到&#xff0c;包括&#xff1a;主程序/子程序&#xff0c;面向对象&#xff0c;层次结构&#xff08;分层越…

Rootkit介绍

一、定义 Rootkit是一种恶意软件&#xff0c;旨在让黑客访问和控制目标设备。虽然大多数Rootkit 会影响软件和操作系统&#xff0c;但有些还会感染计算机的硬件和固件。Rootkit善于隐藏自己&#xff0c;担当它们保持隐藏时&#xff0c;其实处于活跃状态。 一旦未经授权获得对计…

让更多的人能使用AI才能提升国内AI竞争力

随着人工智能技术的快速发展,AI正在深入影响我们的生活和工作。然而,目前AI技术的使用和应用主要集中在少数大型科技公司和研究机构,普通大众对AI技术的接触和使用还相对有限。如何让更多的人能够便捷地使用AI,从而带动整个国内AI产业的发展,已成为当前亟需解决的问题。 首先…

SQLAIchemy 异步DBManager封装-03得心应手

前言 SQLAIchemy 异步DBManager封装-01入门理解SQLAIchemy 异步DBManager封装-02熟悉掌握 在前两篇文章中&#xff0c;我们详细介绍了SQLAlchemy异步DBManager的封装过程。第一篇文章帮助我们入门理解了整体的封装结构和思路&#xff0c;第二篇文章则帮助我们更加熟悉和掌握了这…

Github进行fork后如何与原仓库同步

前言 fork了一个仓库以后怎么同步源仓库的代码&#xff1f; 步骤 1、执行命令 git remote -v 查看你的远程仓库的路径。 以一个实际例子说明&#xff0c; 来源仓库&#xff1a; TheFirstLineOfCode/basaltgit remote -v得到&#xff1a; origin https://github.com/ghmi…

“亚马逊依赖”之下,傲基科技的品牌势能如何提升?

受益于出口政策红利、低人工成本、完善的供应链以及成熟的生产工艺优势&#xff0c;近年来我国家具出口行业迅速发展。 数据显示&#xff0c;我国家具出口规模1995年仅为11.06亿美元&#xff0c;至2023年增至641.96亿美元。随着出口规模持续扩大&#xff0c;相关企业积极走入公…

Java高级阶段面试题库(Redis数据库、MQ消息队列、kafka、SpringBoot + SpringCloud、MySQL、JVMJUC、其它)

文章目录 1. Redis数据库篇(忽略)1.1 简单介绍一下redis1.2 单线程的redis为什么读写速度快?1.3 redis为什么是单线程的?1.4 redis服务器的的内存是多大?1.5 为什么Redis的操作是原子性的&#xff0c;怎么保证原子性的&#xff1f;1.6 你还用过其他的缓存吗&#xff1f;这些…

基于深度学习的车牌识别

如果你认为车牌只是车子的‘名字’&#xff0c;那么是时候让你见识一下&#xff0c;当科技赋予它‘超能力’时会发生什么&#xff1f; 上效果图&#xff1b; 这就是车牌识别的力量&#xff0c;下面是主函数代码&#xff1a; # -*- coding: UTF-8 -*- import argparse import …

使用d3.js画一个BoxPlot

Box Plot 在画Box Plot之前&#xff0c;先来了解下Box Plot是什么&#xff1f; 箱线图&#xff08;Box Plot&#xff09;也称盒须图、盒式图或箱型图&#xff0c;是一种用于展示数据分布特征的统计图表。 它由以下几个部分组成&#xff1a; 箱子&#xff1a;表示数据的四分…

阶段性学习汇报 4月19日

目录 一、毕业设计和毕业论文 二、学习python和vue 三、阅读知识图谱 四、下周规划 一、毕业设计和毕业论文 毕业设计后端功能基本实现&#xff0c;但是还有些具体的细节需要优化。前端小程序部分只有个前端页面以及部分交互逻辑&#xff0c;还需进一步完善。在疾病预测这里本…

3d模型合并怎么样不丢材质?---模大狮模型网

在3D设计中&#xff0c;合并模型是常见的操作&#xff0c;它可以帮助设计师将多个单独的模型组合成一个&#xff0c;从而简化场景并提高渲染效率。然而&#xff0c;合并模型时常常会面临一个棘手的问题&#xff1a;如何确保合并后的模型不丢失原有的材质?本文将探讨如何在合并…

电力调度自动化系统由什么构成?

电力调度自动化系统由什么构成&#xff1f; 电力调度自动化系统通过数据采集与传输、数据处理与存储、监视与控制、优化与决策、通信网络和系统应用软件等构成&#xff0c;实现对电力系统的监控、控制和优化。 电力调度自动化系统是一种集成了计算机技术、通信技术、自动化技术…