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

前言

       本篇都是在自学C++基础知识的基础上,加上本身理解所完成的,为了便于记录学习情况,使用更加容易理解的话术描述出来,方便使用。

        在C++程序中,选择结构(也称为条件结构)用于根据特定的条件执行不同的代码块。选择结构有多种形式,包括if语句、if-else语句、if-else if语句和switch语句。

正文

01-选择结构简介

       1、if语句:

        if语句用于根据指定条件执行某段代码,如果条件为真则执行,否则跳过。

        语法格式为:

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

        2、if-else语句:​​​​​​

        if-else语句用于在条件为真时执行一段代码块,否则执行另一段代码块。

        语法格式为:

if (condition)
{
    // code to be executed if condition is true
}
else
{
    // code to be executed if condition is false
}

        3、if-else if语句:

        if-else if语句可以在多个条件之间进行选择,如果前一个条件不满足,则继续判断下一个条件。

        语法格式为:

if (condition1)
{
    // code to be executed if condition1 is true
}
else if (condition2)
{
    // code to be executed if condition2 is true
}
else
{
    // code to be executed if all conditions are false
}

        4、switch语句:

        switch语句用于根据表达式的值执行不同的代码块。

        语法格式为:

switch (expression)
{
    case value1:
        // code to be executed if expression equals value1
        break;
    case value2:
        // code to be executed if expression equals value2
        break;
    default:
        // code to be executed if expression doesn't match any case
}

02-单行if语句

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

#include<iostream>
using namespace std;

int main()
{
	//if 语句,
	int a = 0;
	cout << "请输入一个数a" << endl;
	cin >> a;
	cout << "你输入的数为:" <<a<< endl;
	//注意事项:if条件后面一定不要加分号,加分号之后,前面的代码和后面的代码就分离了,
	//if的条件无论是否满足,都会执行下一步。一定要注意!!!
	if (a % 2 == 0)  // if后面不要加分号,不然括号里的条件就和下面的语句分开了,条件不起作用
	{
		cout << "a是一个偶数" << endl;

	}

	system("pause");
	return 0;

}

03-多行if语句

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

#include<iostream>
using namespace std;

int main()
{

	// 选择结构的多行if语句

	// 1、输入分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;
	// 2、提示输入的分数
	cout << "您输入的分数为:" << score << endl;

	// 3、判断,如果大于600,输出恭喜,否则打印失败
	if (score>600)
	{
		cout << "恭喜" << endl;
	} 
	else
	{
		cout << "失败" << endl;
	}
	system("pause");
	return 0;

}

04-多条件的if语句

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

#include <iostream>
using namespace std;

int main()
{
	// 选择结构   多条件if语句
	// 输入一个考试分数,大于600,考上一本,大于500,考上二本,大于400,考上三本,小于等于400,视为未考上本科
	int score = 0;
	cout << "请输入一个分数" << endl;
	cin >> score;
	cout << "输入的分数为:" << score << endl;
	if (score > 600)  // 不能写分号,不然无论条件满不满足,都会执行后面的语句
	{
		cout << "考上了一本大学" << endl;
	}
	else if (score > 500)
	{
		cout << "考上了二本大学" << endl;
	}
	else if (score > 400)
	{
		cout << "考上了三本大学" << endl;
	}
	else
	{
		cout << "没有考上大学,再接再厉" << endl;
	}
	system("pause");

	return 0;
}

05-嵌入式if语句

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

#include<iostream>
using namespace std;

int main()
{
	int score = 0;
	cout << "请输入一个分数" << endl;
	cin >> score;
	cout << "你输入的分数为:" << score << endl;
	if (score > 600)
	{
		cout << "恭喜你考上一本大学" << endl;
		if (score > 700)
		{
			cout << "恭喜你考上北京大学" << endl;
		}
		else if (score > 650) 
		{
			cout << "恭喜你考上清华大学" << endl;
		}
		else
		{
			cout << "恭喜你考上人民大学" << endl;
		}
	}
	else if (score > 500)
	{
		cout << "恭喜你考上二本大学" << endl;
	}
	else if (score > 400)
	{
		cout << "恭喜你考上三本大学" << endl;
	}
	else
	{
		cout << "你没有考上本科" << endl;
	}

	system("pause");
	return 0;

}

06-案例-三只小猪比较体重

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

#include<iostream>
using namespace std;

int main()
{
	//比较三只小猪的体重
	//1、创建三只小猪的体重变量
	int num1 = 0;
	int num2 = 0;
	int num3 = 0;
	//2、让用户输入小猪的重量
	cout << "请输入小猪A的体重" <<endl;
	cin >> num1;

	cout << "请输入小猪B的体重" << endl;
	cin >> num2;

    cout << "请输入小猪C的体重" << endl;
	cin >> num3;

	cout << "小猪A的体重为" << num1 << endl;
	cout << "小猪B的体重为" << num2 << endl;
	cout << "小猪C的体重为" << num3 << endl;
	//3、判断哪只小猪最重
	//if (num1 > num2 && num1>num3)
	//{
	//	cout << "小猪A最重" << endl;
	//}
	//else if (num2 > num1&&num2 > num3)
	//{
	//	cout << "小猪B最重" << endl;
	//}
	//else
	//{
	//	cout << "小猪C最重" << endl;
	//}
	//4、另一种判断小猪重量的方法
	if (num1 > num2)//A比B重
	{
		if (num1 > num3)//A比C重
		{
			cout << "小猪A最重" << endl;
		}
		else
		{
			cout << "小猪C最重" << endl;
		}
	}
	else //if (num1 < num2)//B比A重,上面已经说了A比B重,上面不成立的话,只需要写else即可
	{
		if (num2 > num3)
		{
			cout << "小猪B最重" << endl;
		}
		else
		{
			cout << "小猪C最重" << endl;
		}
	}
	system("pause");

	return 0;
}

07-三目运算符

        具体使用代码和解释如下:在C++中,三目运算符返回的是变量,可以继续赋值(a < b ? a : b) = 100;  意思是:初始值a与b进行比较,如果a<b,则返回a,但是由于a是20,大于b,因此返回的是b,并且将给b赋值未100。

#include<iostream>
using namespace std;

int main()
{
	int a = 20;
	int b = 10;
	int c = 0;
	c = (a < b ? a : b);//如果a>b,返回a,否则,返回b
	cout << "c=" << c << endl;
	//在C++中,三目运算符返回的是变量,可以继续赋值
	(a < b ? a : b) = 100;  // 意思是,初始值a与b进行比较,如果a<b,则返回a,但是由于a是20,大于b,因此返回的是b,并且将给b赋值未100
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	system("pause");
	return 0;

}

08-switch语句

        具体使用代码和解释如下:if和switch的区别:switch的缺点,判断的时候只能是整型或者字符型,不可以是一个区间;switch的优点,结构清晰,执行效率高。

#include<iostream>
using namespace std;

int main()
{
	//switch语句
	//判断学生考试等级
	//1、首先输入一个分数
	cout << "请输入一个分数" << endl;

	//2、用户输入分数
	int score = 0;
	cin >> score;
	cout << "您输入的分数为:" << score << endl;
	//3、根据用户输入的分数判断等级
	switch (score / 10)//switch后的括号中只能放整数,或者字符型,score/10,代表一个整数
	{
	case 10:
		cout << "您的成绩为:A" << endl;
		break;  // 用来退出当前的命令
	case 9:
		cout << "您的成绩为:A" << endl;
		break;
	case 8:
		cout << "您的成绩为:B" << endl;
		break;
	case 7:
		cout << "您的成绩为:C" << endl;
		break;
	case 6:
		cout << "您的成绩为:D" << endl;
		break;
	default:
		cout << "您的成绩为:F" << endl;
	}
	//if和switch的区别
	//switch的缺点,判断的时候只能是整型或者字符型,不可以是一个区间
	//switch的优点,结构清晰,执行效率高

	system("pause");

	return 0;

}

总结

        选择结构允许程序在特定条件下执行不同的代码,提高了程序的灵活性和可扩展性。在实际编程中,选择结构是非常常用且重要的一部分,能够根据不同的情况执行相应的代码,实现复杂的逻辑控制。

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

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

相关文章

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…

Unity类银河恶魔城学习记录15-1,2 p153 Audio Manager p154 Audio distance limiter

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili AudioManager.cs using System.Collections; using System.Collections.Gen…

Grafana 系列|Grafana 监控 TDengine集群

Grafana 监控 TDengine集群有两种方式&#xff1a; 一、 taosKeeper监控 TDengine 通过 taosKeeper 将服务器的 CPU、内存、硬盘空间、带宽、请求数、磁盘读写速度等信息定时写入指定数据库。TDengine 还将重要的系统操作&#xff08;比如登录、创建、删除数据库等&#xff0…

OpenHarmony语言基础类库【@ohos.util.HashSet (非线性容器HashSet)】

HashSet基于[HashMap]实现。在HashSet中&#xff0c;只对value对象进行处理。 HashSet和[TreeSet]相比&#xff0c;HashSet中的数据无序存放&#xff0c;即存放元素的顺序和取出的顺序不一致&#xff0c;而TreeSet是有序存放。它们集合中的元素都不允许重复&#xff0c;但Hash…

八国语言50种海外电子游戏源码 海外游戏开发BTC虚拟币支付 外国电子游艺 游戏源码交易平台 搭建教程

全新海外版的游戏竞猜玩法带搭建教程 系统支持八国语言&#xff0c;50种游戏&#xff0c;支持 Paypal、人工充值、BTC多种支付 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89105597 更多资源下载&#xff1a;关注我。

WEB攻防-PHP特性-CMS审计实例

前置知识&#xff1a;PHP函数缺陷 测试环境&#xff1a;MetInfo CMS 函数缺陷导致的任意文件读取 漏洞URL&#xff1a;/include/thumb.php?dir 漏洞文件位置&#xff1a;MetInfo6.0.0\app\system\include\module\old_thumb.class.php <?phpdefined(IN_MET) or exit(No…

Python用于高级异常检测和聚类的工具库之BanditPAM使用详解

概要 Python BanditPAM库是一个用于高级异常检测和聚类的工具,具有强大的特性和灵活的功能,可以发现数据中的异常点并进行有效的聚类分析。本文将详细介绍Python BanditPAM库的安装、特性、基本功能、高级功能以及总结。 安装 首先,需要安装Python BanditPAM库。 可以使用…

2024年智能手表行业线上市场销售数据分析

智能手表市场近几年随着各大厂商的加入&#xff0c;逐渐朝着专业化、智能化发展。从一开始被认为是“智商税”、“鸡肋产品”到如今可以成为人体心脑血管健康监测、专业运动测速、移动定位的“多功能电子管家”&#xff0c;智能手表市场仍在不断发展中。 根据鲸参谋数据显示&a…

Git -- 运用总结

文章目录 1. Git2. 基础/查阅2.1 基础/查阅 - git2.2 仓库 - remote2.3 清理 - rm/clean2.4 版本回退 - reset 3. 分支3.1 分支基础 - branch3.2 分支暂存更改 - stash3.3 分支切换 - checkout 4. 代码提交/拉取4.1 代码提交 - push4.2 代码拉取 - pull 1. Git 2. 基础/查阅 2…

2分钟自己写小游戏:使用js和css编写石头剪刀布小游戏、扫雷小游戏、五子棋小游戏。新手老手毕业论文都能用。

系列文章目录 【复制就能用1】2分钟玩转轮播图,unslider的详细用法 【复制就能用2】css实现转动的大风车&#xff0c;效果很不错。 【复制就能用3】2分钟自己写小游戏&#xff1a;剪刀石头布小游戏、扫雷游戏、五子棋小游戏 【复制就能用4】2024最新智慧医疗智慧医院大数据…

【声网】实现web端与uniapp微信小程序端音视频互动

实现web端与uniapp微信小程序端音视频互动 利用声网实现音视频互动 开通声网服务 注册声网账号 进入Console 成功登录控制台后&#xff0c;按照以下步骤创建一个声网项目&#xff1a; 展开控制台左上角下拉框&#xff0c;点击创建项目按钮。 在弹出的对话框内&#xff0c;依…

严把质量关,饮片追溯系统应用,信息化追溯助力用药安全-亿发

中药饮片作为我国中药产业的重要组成部分&#xff0c;在医药工业中发挥着至关重要的作用。近年来&#xff0c;中药饮片行业虽然取得了稳步增长&#xff0c;但同时也面临着产业集中度低、竞争激烈、质量良莠不齐等诸多挑战。为了应对这些问题&#xff0c;国家和各地纷纷加强中药…

URL路由基础与Django处理请求的过程分析

1. URL路由基础 对于高质量的Web应用来讲&#xff0c;使用简洁、优雅的URL设计模式非常有必要。Django框架允许设计人员自由地设计URL模式&#xff0c;而不用受到框架本身的约束。对于URL路由来讲&#xff0c;其主要实现了Web服务的入口。用户通过浏览器发送过来的任何请求&am…

如何在vue3+vite中优雅的使用iconify图标

前言 从Vue2迁移到Vue3&#xff0c;在使用上有着很大的差别。本文的话主要是针对图标的使用差别上进行分析&#xff0c;同时给出基于iconify图标库中unplugin-icons的用法。这里特殊说明一下&#xff1a;其实element-plus中用到的图标也是基于iconify图标库的&#xff0c;在我们…

【python】语言学习笔记--用来记录总结

请问以下变量哪些是tuple类型&#xff1a; a ()b (1)c [2]d (3,)e (4,5,6)answer在Python中&#xff0c;元组&#xff08;tuple&#xff09;是由逗号分隔的一组值组成的有序序列&#xff0c;通常用圆括号括起来。让我们逐个检查变量&#xff0c;看哪些是元组类型&#xff…

uniapp微信小程序开发踩坑日记:Vue3 + uniapp项目引入Echarts图表库

一、下载插件包 下载地址如下&#xff1a; lime-echart: 百度图表 echarts&#xff0c;uniapp、taro 使用 echarts 图表&#xff0c;全面兼容各平台小程序、H5、APP、Nvue 将以下两个文件夹放到项目的components里 同样地&#xff0c;将静态资源文件夹下内容放到自己项目的s…

openWebUI+ollamawindows+不用docker+webLite本地安装

openWebUI & ollama & windows & 不用docker & webLite 本地安装 总结一下安装教程 10核CPU16G内存 两个web框架都可以&#xff0c;先说简单的 ollama-webui-lite(https://github.com/ollama-webui/ollama-webui-lite) 轻量级&#xff0c;只使用nodejs 先装…

Unreal Engine子类化系统UButton

UE系统Button点击事件无法传递参数&#xff0c;通过子类化系统Button添加自定义参数扩展实现Button点击事件参数传递点击C类文件夹&#xff0c;在右边的区域点击鼠标右键&#xff0c;在弹出的菜单中选择“新建C类”在弹出的菜单中选中“显示所有类”&#xff0c;选择Button作为…

python版的openCV使用及下载

一、下载OpenCV模块 截止目前&#xff1a;现在OpenCV使用环境还是python3.8的版本所以咱们下载时记得用3.8版本的 终端下载&#xff1a;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python 这是国内的镜像下载能快一些&#xff1b; 下载成功的标志&am…

Gin的中间件执行流程与用法

一、背景 我们在使用Gin框架进行Web开发的时候&#xff0c;基本上都会遇到登录拦截的场景。 例如某些接口必须在登录以后才能访问&#xff0c;根据登录用户的信息以及权限&#xff0c;拿到属于自己的数据, 反之&#xff0c;没登录过则直接拒绝访问。 那么我们怎么做到这些登录…
最新文章