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://xiahunao.cn/news/2774995.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

进程间通信(4):消息队列

先进先出&#xff0c;保证信息的有序性。 函数&#xff1a;msgget(搭配ftok)、msgsnd、msgrcv、msgctl 实现流程&#xff1a; 1、创建消息队列IPC对象 msgget 2、通信(内置函数&#xff1a;msgsnd、msgrcv) 3、删除消息队列IPC对象 msgctl write.c /* * 文件名称&…

数字图像处理实验记录九(数字形态学实验)

一、基础知识 1.形态学&#xff0c;用于从图像中提取对表达和描绘区域形状有意义的图像分量&#xff0c;使后续的识别工作能够抓住目标对象最为有本质的形状特征&#xff0c;如边界连通区域等。 2.膨胀运算&#xff1a;膨胀会使目标区域范围“变大”&#xff0c;将于目标区域接…

第三百一十五回

文章目录 1. 概念介绍2. 基本用法3. 补充用法4. 内容总结 我们在上一章回中介绍了"再谈ListView中的分隔线"&#xff0c;本章回中将介绍showMenu的用法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在第一百六十三回中介绍了showMenu相关的内容…

C语言指针函数学习2

之前写过一篇指针函数的博文&#xff1b;复习再学习一下&#xff1b; 指针函数&#xff0c;是一个函数&#xff0c;它的返回值是指针类型&#xff1b; 之前写了一个指针函数&#xff0c;返回一个 int * 类型的指针&#xff1b;下面做一个程序&#xff0c;返回一个结构体指针&a…

如何给闲置电脑安装黑群晖

准备 diskgenius &#xff0c;黑群晖引导文件&#xff08;有些需要扩展驱动包&#xff09;&#xff0c;如果给U盘安装需要balenaEtcher或者rufus&#xff08;U盘安装还需要ChipGenus&#xff09;&#xff0c;如果给硬盘安装需要有pe推荐firePE或U启通 我以U盘为例 首先去找这…

【声明】关于抄袭我博客的声明

最近发现有人在抄袭我的博客&#xff0c;你抄了就算了&#xff0c;你连原链接也不贴&#xff0c;直接就设置的是原创的&#xff0c;你脸去哪了啊&#xff1f; 在你评论下面说了两次还在抄&#xff0c;事不过三&#xff0c;今天早上发现你又抄了一篇。既然如此&#xff0c;我就…

面向智算服务,构建可观测体系最佳实践

作者&#xff1a;蓟北 构建面向 AI、大数据、容器的可观测体系 &#xff08;一&#xff09;智算服务可观测概况 对于越来越火爆的人工智能领域来说&#xff0c;MLOps 是解决这一领域的系统工程&#xff0c;它结合了所有与机器学习相关的任务和流程&#xff0c;从数据管理、建…

前端JavaScript篇之对执行上下文的理解

目录 对执行上下文的理解创建执行上下文 对执行上下文的理解 当我们在执行JavaScript代码时&#xff0c;JavaScript引擎会创建并维护一个执行上下文栈来管理执行上下文。执行上下文有三种类型&#xff1a;全局执行上下文、函数执行上下文和eval函数执行上下文。 在写代码的时…

代码随想录算法训练营第二十五天 |216.组合总和III,17.电话号码的字母组合(已补充)

剪枝操作讲解&#xff1a;&#xff08;已观看&#xff09; 带你学透回溯算法-组合问题的剪枝操作&#xff08;对应力扣题目&#xff1a;77.组合&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 216.组合总和III&#xff08;已观看&#xff09; 1、题目链接&#xf…

参观宋代建筑,感受传统魅力

为了更好地了解和传承中华文化&#xff0c;同时深入挖掘其在现代社会的传承与发展&#xff0c;2024年2月8日&#xff0c;曲阜师范大学计算机学院“古韵新声&#xff0c;格物致‘知’”社会实践队队员饶子恒深入考察中国传统建筑和文化&#xff0c;前往山东省菏泽市郓城县的水浒…

【Flink状态管理(二)各状态初始化入口】状态初始化流程详解与源码剖析

文章目录 1. 状态初始化总流程梳理2.创建StreamOperatorStateContext3. StateInitializationContext的接口设计。4. 状态初始化举例&#xff1a;UDF状态初始化 在TaskManager中启动Task线程后&#xff0c;会调用StreamTask.invoke()方法触发当前Task中算子的执行&#xff0c;在…

SolidWorks学习笔记——草图绘制的基本命令

目录 一、进入草图绘制 二、直线命令与删除命令 三、圆弧命令与矩形命令 四、槽口命令以及多边形命令 五、椭圆以及倒角命令 六。草图绘制中的剪裁命令 七、草图中的几何关系 八、草图绘制中的智能尺寸 九、从外部粘贴草图&#xff08;CAD&#xff09; 一、进入草图绘…

ongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(2)-Swagger框架集成

Swagger是什么&#xff1f; Swagger是一个规范且完整API文档管理框架&#xff0c;可以用于生成、描述和调用可视化的RESTful风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口&#xff0c;可以让人和计算机拥有无须访问源码、文档或网络流量监测就…

Linux系统中HTTP代理的常见问题及解决方案

亲爱的Linux用户们&#xff0c;是不是有时候觉得HTTP代理就像是一个魔法盒子&#xff0c;让你在数字世界中自由穿梭&#xff1f;但是&#xff0c;就像所有的魔法物品一样&#xff0c;它也会偶尔出点小状况。今天&#xff0c;我们就来一起探讨一下Linux系统中HTTP代理的常见问题…

MyBatis之动态代理实现增删改查以及MyBatis-config.xml中读取DB信息文件和SQL中JavaBean别名配置

MyBatis之环境搭建以及实现增删改查 前言实现步骤1. 编写MyBatis-config.xml配置文件2. 编写Mapper.xml文件&#xff08;增删改查SQL文&#xff09;3. 定义PeronMapper接口4. 编写测试类1. 执行步骤2. 代码实例3. 运行log 开发环境构造图总结 前言 上一篇文章&#xff0c;我们…

Excel——合并计算

1.表格的合并计算&#xff08;单张表格/多个表格&#xff09; Q&#xff1a;请统计两个表格中各商品的总销量和总销售额&#xff0c;将结果放置在下方任意位置。 A&#xff1a;选择一个需要将合并计算数据放置区域的空白单元格 选择【数据】——【合并计算】&#xff0c;【函…

【Spring】Tomcat服务器部署

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Spring⛺️稳中求进&#xff0c;晒太阳 单体项目部署 本地工作 项目在本地开发完毕之后进行一些必要参数的修改。 比如&#xff1a; 数据库的JDBC的配置文件&#xff0c;还有前端页面的…

STM32学习笔记——定时器

目录 一、定时器功能概述 1、基本定时器&#xff08;TIM6&TIM7&#xff09; 工作原理 时序 2、通用计时器&#xff08;TIM2&TIM3&TIM4&TIM5&#xff09; 时钟源 外部时钟源模式1&2 外部时钟源模式2 外部时钟源模式1 定时器的主模式输出 输入捕获…

打开word时,启动时间很长,教你一招快速启动!

在打开word时&#xff0c;是不是发现word突然启动的非常慢&#xff0c;要在加载界面加载很长时间才能进去&#xff0c;但感觉不是自己电脑的问题&#xff0c;因为其他office软件运行正常。关闭这些设置可以快速启动word。 解决方法 ①在菜单中的“文件”&#xff0c;点击“选项…

ONLYOFFICE 文档开发者版 8.0:API和文档生成器更新

随着 8.0 版新功能的发布&#xff0c;我们更新了编辑器、文档生成器和插件的 API。请阅读本文了解详情。 PDF 支持 我们在 documentType 参数中添加了 pdf 文档这一类型。现在完全支持PDF文件*&#xff0c;包括含有可填写字段的文件&#xff0c;并且可以在ONLYOFFICE PDF 编辑…