C++分支语句

个人主页:PingdiGuo_guo

收录专栏:C++干货专栏

大家新年快乐,今天,我们来了解一下分支语句。

文章目录

1.什么是分支语句

1.if语句

基本形式

用法说明

练习

2.if-else语句

基本形式

用法说明

练习

3.switch语句

基本形式

用法说明

练习

4.if-else的优化:三目运算符

基本形式

用法说明

练习

2.语句对比和用途

3.总结


1.什么是分支语句

分支语句是在程序执行过程中根据条件的不同选择不同的执行路径的结构。在C++中,常用的分支语句有if语句、if-else语句、if-else if-else语句和switch语句。

1.if语句

基本形式

if (condition) {// 如果条件为真,执行此处的代码
}


用法说明

1. condition是一个布尔表达式,可以是任何能产生true(非零)或false(零)结果的表达式。
2. 如果condition为真,则执行if语句中大括号内的代码块;如果为假,则跳过该代码块。

练习

判断一个整数是否为偶数

步骤:

  1. 声明一个整数变量num,并从用户输入获取其值。
  2. 使用if语句判断num是否能被2整除。
  3. 如果num能被2整除,则输出"是偶数";

示例代码:

​
#include <iostream>int main() {int num;std::cout << "请输入一个整数:";std::cin >> num;if (num % 2 == 0) {std::cout << num << " 是偶数" << std::endl;} return 0;
}​

2.if-else语句

基本形式
 

if (condition) {// 如果条件为真,执行此处的代码
} else {// 如果条件为假,执行此处的代码
}



用法说明


1. condition是一个布尔表达式,可以是任何能产生true(非零)或false(零)结果的表达式。
2. 如果condition为真,则执行if语句中大括号内的代码块;如果为假,则执行else语句中大括号内的代码块。

练习

1.根据输入的成绩判断学生的等级

步骤:

  1. 声明一个整数变量score,并从用户输入获取其值。
  2. 使用if-else if-else语句根据score的值判断学生的等级。
  3. 根据score的值输出相应的等级。

示例代码:

#include <iostream>int main() {int score;std::cout << "请输入学生的成绩:";std::cin >> score;if (score >= 90) {std::cout << "等级:A" << std::endl;} else if (score >= 80) {std::cout << "等级:B" << std::endl;} else if (score >= 70) {std::cout << "等级:C" << std::endl;} else if (score >= 60) {std::cout << "等级:D" << std::endl;} else {std::cout << "等级:F" << std::endl;}return 0;
}

2.判断一个年份是否为闰年

步骤:

  1. 声明一个整数变量year,并从用户输入获取其值。
  2. 使用if-else语句判断year是否为闰年。
  3. 如果year能被4整除但不能被100整除,或者能被400整除,则输出"是闰年";否则,输出"不是闰年"。

示例代码:

#include <iostream>int main() {int year;std::cout << "请输入一个年份:";std::cin >> year;if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {std::cout << year << " 是闰年" << std::endl;} else {std::cout << year << " 不是闰年" << std::endl;}return 0;
}

3.switch语句

基本形式
 

switch (表达式) {
case 值1:
// 当表达式的值等于值1时执行的代码块
break; // 阻止代码执行流继续到下一个case
case 值2:
// 当表达式的值等于值2时执行的代码块
break;
// 可以有任意数量的case标签...
default:
// 如果表达式的值没有匹配上面任何一个case标签,
// 则执行此default部分的代码块
break;
}




用法说明


- 表达式通常是一个变量或者可以计算得到确定值的表达式,其结果必须能够转换成整型、字符型、枚举型或其他允许类型的值。
- case 值`:每一个case关键字后面跟着一个特定的值,这些值必须是唯一的且可以与`表达式`的结果进行比较。
- 当`表达式`的结果与某个case后面的值相等时,从该case开始执行后续的语句,直到遇到break语句为止。
- break语句用来确保执行完匹配的case后跳出整个switch结构,如果不写break,则会顺序执行下一个case的代码块,直到遇到break或switch结束。
- default子句是可选的,如果所有case都没有匹配到,那么程序会执行default后的代码块。

练习

通过用户输入的数字决定输出对应的月份名

步骤:

     1.让用户输入一个数字

     2.通过switch语句判断这个数字代表的是哪个月份,并打印出相应的月份名。

     3.对于不在1到12范围内的非法输入,程序会通过default分支给出提示。

示例代码:

#include <iostream>int main() {
int month_number;std::cout << "请输入一个1到12之间的数字代表月份:";
std::cin >> month_number;// 使用switch语句处理不同月份
switch (month_number) {
case 1:
std::cout << "您输入的是1,对应的是:一月\n";
break;
case 2:
std::cout << "您输入的是2,对应的是:二月\n";
break;
case 3:
std::cout << "您输入的是3,对应的是:三月\n";
break;
case 4:
std::cout << "您输入的是4,对应的是:四月\n";
break;
case 5:
std::cout << "您输入的是5,对应的是:五月\n";
break;
case 6:
std::cout << "您输入的是6,对应的是:六月\n";
break;
case 7:
std::cout << "您输入的是7,对应的是:七月\n";
break;
case 8:
std::cout << "您输入的是8,对应的是:八月\n";
break;
case 9:
std::cout << "您输入的是9,对应的是:九月\n";
break;
case 10:
std::cout << "您输入的是10,对应的是:十月\n";
break;
case 11:
std::cout << "您输入的是11,对应的是:十一月\n";
break;
case 12:
std::cout << "您输入的是12,对应的是:十二月\n";
break;
default:
std::cout << "无效的输入!请确保输入的是1到12之间的数字。\n";
break;
}return 0;
}


4.if-else的优化:三目运算符

基本形式


 

条件 ? 表达式1 : 表达式2;




用法说明


此表达式首先会计算“条件”,若“条件”为真(非零或布尔真),则执行并返回“表达式1”的值;若“条件”为假(零或布尔假),则执行并返回“表达式2”的值。

例如:
 

int age = 20;
bool isAdult = (age >= 18) ? true : false; // 如果age大于等于18,则isAdult为true,否则为false




练习

1.编写一个表达式,根据输入的分数(假设为整数范围0~100)将其转换为对应的等级"A"、"B"、"C"、"D"或"F"。

 

int score = 85; // 可以替换不同的分数进行测试
char grade = (score >= 90) ? 'A' :
(score >= 80) ? 'B' :
(score >= 70) ? 'C' :
(score >= 60) ? 'D' : 'F';
cout << "Grade: " << grade << endl; // 输出对应的等级



2.定义两个整数变量,使用三目运算符找出它们中的较大者。
 

int num1 = 15, num2 = 25;
int maxNum = (num1 > num2) ? num1 : num2;
cout << "Max number: " << maxNum << endl; // 输出较大的数

2.语句对比和用途

  1. if语句:

    • 对比:if语句只能判断一个条件,当条件满足时执行相应的代码块。
    • 用途:if语句适用于简单的条件判断,根据单个条件来选择执行不同的代码。
  2. if-else语句:

    • 对比:if-else语句可以判断一个条件,当条件满足时执行if块中的代码,当条件不满足时执行else块中的代码。
    • 用途:if-else语句适用于需要根据一个条件的满足与否来执行两种不同的代码块的情况。
  3. switch语句:

    • 对比:switch语句可以根据表达式的值在多个选项中进行选择,每个选项对应一个代码块。
    • 用途:switch语句适用于需要根据具体的值来执行相应代码块的情况,相比于if-else语句,switch语句的结构更清晰,适用于多个选项的情况。
  4. 三目运算符:

    • 对比:三目运算符是一个表达式,根据条件选择返回不同的值。
    • 用途:三目运算符适用于简单的条件判断,当需要在一个表达式中根据条件选择返回不同的值时使用。相比于if语句和switch语句,三目运算符具有简洁的语法和较短的代码长度。

if语句和if-else语句适用于简单的条件判断,switch语句适用于多个选项的条件判断,而三目运算符适用于简单的条件判断并返回不同的值。根据具体的需求和代码逻辑,选择合适的条件判断工具可以提高代码的可读性和效率。

3.总结

本篇博客到这里就结束了,感谢大家的支持与观看,如果有好的建议欢迎留言,谢谢大家啦!

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

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

相关文章

LeetCode 热题 100 | 链表(中下)

目录 1 19. 删除链表的倒数第 N 个节点 2 24. 两两交换链表中的节点 3 25. K 个一组翻转链表 4 138. 随机链表的复制 菜鸟做题第三周&#xff0c;语言是 C 1 19. 删除链表的倒数第 N 个节点 到底是节点还是结点。。。 解题思路&#xff1a; 设置双指针 left 和 ri…

云安全的基本概念(基本目标与指导方针)

目录 一、云安全概念概述 1.1 概述 二、云安全的基本目标 2.1 安全策略开发模型 2.1.1 信息安全三元组 2.1.1.1 保密性(Confidentiality) 2.1.1.2 完整性(Integrity) 2.1.1.3 可用性(Availability) 2.1.2 信息安全三元组的局限性 2.2 其他信息安全属性 2.2.1 真实性 …

Java基础知识练习题

1.对Java源文件进行编译操作的命令是&#xff08;B&#xff09; A.Java B.javac C.where is java D.javaw 2.下列命令中&#xff0c;用来运行Java程序的是&#xff08;A&#xff09;A.java B. javadoc C. jar D. javac 分析&#xff1a; 对Java源程序进行编译的命令是J…

踩坑实录(Third Day)

临近年关&#xff0c;同事们该回家的也都回家了&#xff0c;所以我对工作的欲望不是很强烈&#xff0c;所以就主要是自己学习了一下&#xff0c;在 B 站看看视频&#xff0c;自己敲代码&#xff0c;所以今天没遇到什么坑&#xff0c;但是可以分享一下之前踩到的两个坑。 此为第…

最小生成树——Prim/Kruskal Python

最小生成树 从一个图中&#xff0c;生成一个权重最小的生成树 Prim 朴素版 O ( n 2 ) O(n^2) O(n2) 稠密图 不断重复以下过程&#xff1a; 选择与当前集合距离最近的点&#xff0c;加入集合拓展当前集合 和Dijsktra的思想类似&#xff0c;每次拓展与当前集合最近的点&am…

数字图像处理与Python语言实现-常见图像特效(一)

文章目录 0、准备1、亮度调节2、细节强化3、底片效果4、卡通效果5、浮雕效果6、铅笔素描效果7、夏季或温色滤镜8、冬季或冷色滤波在本文中将演示使用 OpenCV 来模仿流行的 Photoshop 或 Instagram 滤镜的各种图像处理技术。 在文章中,我们将尝试使用各种滤镜,其中许多滤镜会生…

Python并发

Python是运行在解释器中的语言&#xff0c;查找资料知道&#xff0c;python中有一个全局锁&#xff08;GIL&#xff09;&#xff0c;在使用多线程(Thread)的情况下&#xff0c;不能发挥多核的优势。而使用多进程(Multiprocess)&#xff0c;则可以发挥多核的优势真正地提高效率。…

电商小程序04实现登录逻辑

目录 1 创建自定义方法2 获取用户名和密码3 验证用户是否同意协议4 验证用户名和密码总结 上一篇我们实现了登录功能的前端界面&#xff0c;这一篇实现一下登录的具体逻辑。 1 创建自定义方法 一般如果页面点击按钮需要有事件响应的&#xff0c;我们用自定义方法来实现。打开我…

第四篇:数据库安装(命令行)

数据库命令行界面安装 mysql官网&#xff0c;下载解压 https://dev.mysql.com/downloads/mysql/ 在安装之前先去检查一下,本地计算机的用户合组 winr(输入lusrmgr.msc) -点击组-双击administrator 如果只有这两个,那么就添加一下,提高网络服务的权限(避免出现mysql启动失败) …

MySQL之体系结构

华子目录 MySQL简介MySQL的特性MySQL版本MySQL常见版本 数据库排名网站MySQL结构体系查看最大连接数查询缓存配置情况 一条SQL语句执行流程 MySQL简介 MySQL是一个小型关系数据库管理系统&#xff0c;开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年…

鸿蒙 WiFi 连接 流程

那当界面上显示扫描到的所有Ap时&#xff0c;我们选择其中的一个Ap发起连接&#xff0c;看下代码流程是怎样的。 // applications/standard/settings/product/phone/src/main/ets/model/wifiImpl/WifiModel.tsconnectWiFi(password: string) {let apInfo this.userSelectedAp…

Cpu指令集

CPU指令集架构是指计算机中央处理器&#xff08;CPU&#xff09;的指令集的设计和组织方式。它定义了CPU能够理解和执行的指令集合&#xff0c;包括指令的格式、操作码&#xff08;Opcode&#xff09;、寻址模式和操作数等。指令集架构决定了CPU的功能和行为&#xff0c;以及如…

springboot项目启动报错:dynamic-datasource can not find primary datasource

项目启动报错信息 Caused by: com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException: dynamic-datasource can not find primary datasourceat com.baomidou.dynamic.datasource.DynamicRoutingDataSource.determinePrimaryDataSource(DynamicRoutingDat…

编程实例分享,手表养护维修软件钟表维修开单管理系统教程

编程实例分享&#xff0c;手表养护维修软件钟表维修开单管理系统教程 一、前言 以下教程以 佳易王钟表维护维修管理系统软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 左侧为导航栏&#xff0c; 1、系统设置&#xff1a;可以设置打…

【深度学习】pytorch 与 PyG 安装(pip安装)

【深度学习】pytorch 与 PyG 安装&#xff08;pip安装&#xff09; 一、PyTorch安装和配置&#xff08;一&#xff09;、安装 CUDA&#xff08;二&#xff09;、安装torch、torchvision、torchaudio三个组件&#xff08;1&#xff09;下载镜像文件&#xff08;2&#xff09;创建…

Java基础常见面试题总结-集合(二)

迭代器 Iterator 是什么&#xff1f; Iterator模式用同一种逻辑来遍历集合。它可以把访问逻辑从不同类型的集合类中抽象出来&#xff0c;不需要了解集合内部实现便可以遍历集合元素&#xff0c;统一使用 Iterator 提供的接口去遍历。它的特点是更加安全&#xff0c;因为它可以…

【网络技术】【Kali Linux】Nmap嗅探(二)多设备扫描

上期实验博文&#xff1a;&#xff08;一&#xff09;简单扫描 一、实验环境 本次实验进行Nmap多设备扫描&#xff0c;实验使用 Kali Linux 虚拟机&#xff08;扫描端&#xff09;、Ubuntu 22.04虚拟机&#xff08;被扫描端1&#xff09;、Ubuntu 18.04虚拟机&#xff08;被扫…

【力扣】移动零,双指针法

移动零原题地址 方法一&#xff1a;传统双指针法 本题要求把非零元素移动到左边&#xff0c;零移动到右边&#xff0c;这跟快速排序的单趟非常相似。 定义左右指针 left 和 right &#xff0c; right 指针负责探测所有元素&#xff0c;如果遇到非零元素&#xff0c;则左右指…

网课:N皇后问题——牛客(题解和疑问)

题目描述 给出一个nnn\times nnn的国际象棋棋盘&#xff0c;你需要在棋盘中摆放nnn个皇后&#xff0c;使得任意两个皇后之间不能互相攻击。具体来说&#xff0c;不能存在两个皇后位于同一行、同一列&#xff0c;或者同一对角线。请问共有多少种摆放方式满足条件。 输入描述: …

梯度提升树系列5——使用GBDT进行特征选择

特征选择是机器学习和数据科学中至关重要的一环,它不仅可以提高模型的性能,还能显著减少模型训练所需的时间和资源。本文将深入探讨如何使用梯度提升决策树(Gradient Boosting Decision Tree, GBDT)进行特征选择,并强调这一方法在实践中的重要性和效果。 写在开头 特征选…