C++分支语句

news2024/9/23 17:21:42

个人主页: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.coloradmin.cn/o/1440522.html

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

相关文章

推荐研发度量思码逸的研发度量工具及视频教学

目前国内做研发度量中&#xff0c;思码逸的研发度量工具的确做的不错&#xff0c;网址是&#xff1a;思码逸-专业的软件研发效能度量分析平台 看到一个不错的介绍视频&#xff1a;《让数据说话&#xff0c;高效盘点企业研发效能》&#xff0c; 地址是&#xff1a;视频课程&…

bert+np.memap+faiss文本相似度匹配 topN

目录 任务 代码 结果说明 任务 使用 bert-base-chinese 预训练模型将文本数据向量化后&#xff0c;使用 np.memap 进行保存&#xff0c;再使用 faiss 进行相似度匹配出每个文本与它最相似的 topN 此篇文章使用了地址数据&#xff0c;目的是为了跑通这个流程&#xff0c;数…

Mac使用AccessClient打开Linux堡垒机跳转闪退问题解决

登录公司的服务器需要使用到堡垒机&#xff0c;但是mac使用AccessClient登录会出现问题 最基础的AccessClient配置 AccessClient启动需要设置目录权限&#xff0c;可以直接设置为 权限 777 chmod 777 /Applications/AccessClient.app注: 如果不是这个路径,可以打开终端,将访达中…

uniapp设置不显示顶部返回按钮

一、pages文件中&#xff0c;在相应的页面中设置 "titleNView": {"autoBackButton": false} 二、对应的页面文件设置隐藏元素 document.querySelector(.uni-page-head-hd).style.display none

Tomcat组件架构与数据流

一、背景与简介 Tomcat我们都知道是一个开源的、实现了大部分Java EE、Servlet、JSP规范的Servlet容器, 允许我们将实现了Serlvet接口的Web程序war包进行部署运行。 但是你有对Tomcat做过细致的学习么? 我相信大部分同学和我一样&#xff0c;之前也是只会进行简单使用&#x…

RisingWave 中文用户文档上线,阅读更高效!

为满足广大中文社区用户、开发者及流处理技术爱好者的需求&#xff0c;RisingWave 用户文档中文社区版今天上线了&#xff01; 中文版文档的推出&#xff0c;旨在为广大用户提供更便捷、高效的阅读体验&#xff0c;帮助大家深入理解并有效使用 RisingWave&#xff0c;发挥其更…

Python:流程控制

4.1 顺序结构 在任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下一行行地执行&#xff0c;中间没有任何判断和跳转。 如果Python程序的多行代码之间没有任何流程控制&#xff0c;则程序总是从上往下依次执行&#xff0c;排在前面的代码先执行&#xf…

1897_野火FreeRTOS教程阅读笔记_链表

1897_野火FreeRTOS教程阅读笔记_链表 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 之前我自己通过直接啃代码的方式对FreeRTOS也算是有了一点理解了&#xff0c;这次趁着些许闲暇翻看一下野火的FreeRTOS教程。一者算是一种复习&#xff1b;二者可能对自…

【数据结构】二叉树的顺序结构及链式结构

目录 1.树的概念及结构 1.1树的概念 1.2树的相关概念 ​编辑 1.3树的表示 1.4树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 2.二叉树概念及结构 2.1二叉树的概念 2.2现实中的二叉树 ​编辑 2.3特殊的二叉树 2.4二叉树的性质 2.5二叉树的存储结…

手把手教你设计接口自动化测试用例:提取接口信息并分析

随着市场需求的变化&#xff0c;大部分企业在招聘测试人员时&#xff0c;都会提出接口自动化测试的相关要求&#xff0c;为什么会这样呢&#xff1f; 目前&#xff0c;软件构架基本上都是前后端分离的&#xff0c;软件的主要功能由服务端提供。从整个软件测试市场来看&#xf…

政安晨:快速学会~机器学习的Pandas数据技能(三)(重命名与合并)

使用机器学习处理数据的第一步就得先理解它&#xff0c;咱们现在就帮助它们一起理解起来。 &#xff08;本篇文章这次换一套数据集&#xff0c;数据文件可以在文章头部下载&#xff0c;并保存至您的虚拟环境的目录中&#xff09; 不知道如何搭建环境的小伙伴请看我机器学习笔…

超九成飘红,银行成开年唯一逆势上涨板块

2024年开年以来&#xff0c;A股银行板块表现令人瞩目。 Choice数据显示&#xff0c;按照申万&#xff08;2021&#xff0c;仅A股&#xff09;分类&#xff0c;2024年开年以来&#xff0c;银行板块是唯一一个逆势上涨板块&#xff0c;平均涨幅为6.53%。 年内银行股近乎全线上涨…

【C语言期末】商品管理系统

本文资源&#xff1a;https://download.csdn.net/download/weixin_47040861/88820155 1.题目要求 商品管理系统 商品信息包括&#xff1a;包括编号、类别、名称、价格、折扣比例、生产时间 、存货数量等要求&#xff1a;1、信息首先保存在文件中&#xff0c;然后打开文件进行…

GPT4技术报告介绍

GPT4_Technical_Report_zh 我们创建了 GPT-4&#xff0c;这是 OpenAI 努力扩展深度学习的最新里程碑。GPT-4 是一个大型多模态模型&#xff08;接受图像和文本输入&#xff0c;发出文本输出&#xff09;&#xff0c;虽然在许多现实世界场景中的能力不如人类&#xff0c;但在各…

Netty的序列化之MessagePack

目录 引入MessagePack依赖 实体类 服务端代码 客户端代码 执行结果 引入MessagePack依赖 <dependency><groupId>org.msgpack</groupId><artifactId>msgpack</artifactId><version>0.6.12</version></dependency> 实体类…

Stable Diffusion 模型下载:GhostMix(幽灵混合)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 GhostMix 是绝对让你惊艳的模型&#xff0c;也是自己认为现在最强的2.5D模型。我认为模型的更新应该是基于现有的画面整体不大变的前提下&#xff0c;提高模型的成…

springboot167基于springboot的医院后台管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

大数据术语系列(1)——COW和MOR,我如何使用chatgpt通俗易懂地理解了hudi这两种表类型

从传统数据库到大数据的转变&#xff0c;首当其冲的是各种术语的理解。 所以我与chatgpt发生了一系列对话&#xff0c;以便于我能快速理解这些术语。 我先把汇总的结果放在前边&#xff0c;后边会一步步地来说明我是如何获取这些信息的。前边我也发过一些关于chatgpt提示词相…

图像处理入门:OpenCV的基础用法解析

图像处理入门&#xff1a;OpenCV的基础用法解析 引言OpenCV的初步了解深入理解OpenCV&#xff1a;计算机视觉的开源解决方案什么是OpenCV&#xff1f;OpenCV的主要功能1. 图像处理2. 图像分析3. 结构分析和形状描述4. 动态分析5. 三维重建6. 机器学习7. 目标检测 OpenCV的应用场…

Go 语言中如何大小端字节序?int 转 byte 是如何进行的?

嗨&#xff0c;大家好&#xff01;我是波罗学。 本文是系列文章 Go 技巧第十五篇&#xff0c;系列文章查看&#xff1a;Go 语言技巧。 我们先看这样一个问题&#xff1a;“Go 语言中&#xff0c;将 byte 转换为 int 时是否涉及字节序&#xff08;endianness&#xff09;&#x…