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.总结

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

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

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

相关文章

生成验证码-超简单

引言 在Web开发中&#xff0c;验证码是一种常见的防止恶意破解、自动化提交的有效手段。在Java项目中&#xff0c;我们可以使用Hutool工具库快速实现验证码功能。Hutool是一个Java工具包&#xff0c;它以简洁易用著称&#xff0c;其中包含了验证码模块&#xff0c;可以让我们轻…

【RPA】智能自动化的未来:AI + RPA

伴随着人工智能&#xff08;AI&#xff09;技术的迅猛进步&#xff0c;机器人流程自动化&#xff08;RPA&#xff09;正在经历一场翻天覆地的变革。AI为RPA注入了新的活力&#xff0c;尤其在处理复杂任务和制定决策方面。通过融合自然语言处理&#xff08;NLP&#xff09;、机器…

Codeforces Round 260 (Div. 1)A. Boredom(dp)

最开始写了一发贪心wa了&#xff0c;然后这种选和不选的组合优化问题&#xff0c;一般是考虑动态规划 d p [ i ] [ 0 ] &#xff1a; dp[i][0]&#xff1a; dp[i][0]&#xff1a;表示第i个数不选的最大值 d p [ i ] [ 1 ] &#xff1a; dp[i][1]&#xff1a; dp[i][1]&#xf…

sql相关子查询

1.什么是相关子查询 相关子查询是一个嵌套在外部查询中的查询&#xff0c;它使用了外部查询的某些值。每当外部查询处理一行数据时&#xff0c;相关子查询就会针对那行数据执行一次&#xff0c;因此它的结果可以依赖于外部查询中正在处理的行。 2.为什么要使用相关子…

C++面试宝典第27题:完全平方数之和

题目 给定正整数 n,找到若干个完全平方数(比如:1、4、9、16、...),使得它们的和等于n。你需要让组成和的完全平方数的个数最少。 示例1: 输入:n = 12 输出:3 解释:12 = 4 + 4 + 4。 示例2: 输入:n = 13 输出:2 解释:13 = 4 + 9。 解析 这道题主要考察应聘者对于…

Java风暴:打造高效作家信息管理平台

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

每日OJ题_位运算①_位运算解题方法+3道OJ

目录 位运算算法原理 ①力扣191. 位1的个数 解析代码 ②力扣338. 比特位计数 解析代码 ③力扣461. 汉明距离 解析代码 位运算算法原理 常见位运算解题方法&#xff1a; 1. 基础位运算&#xff1a; &&#xff1a;按位与&#xff0c;有0就是0 | &#xff1a;按位或&a…

360 安全浏览器 - 页面布局 - 常用网址

360 安全浏览器 - 页面布局 - 常用网址 自定义样式 let myStyle {https://www.baidu.com/: {color: #001483,backgroundColor: #FFF,icon: https://www.baidu.com/favicon.ico},https://blog.csdn.net/jx520: {backgroundColor: #fc5531,icon: https://g.csdnimg.cn/static/l…

Java 学习和实践笔记(2)

今天的学习进度&#xff1a; 注册并下载安装好了Java 8&#xff0c;之后进行以下配置。 1&#xff09;path 是一个常见的环境变量&#xff0c;它告诉系统除了在当前的目标下妹寻找此程序外&#xff0c;还可以到path指定的目录下找。这句话是什么意思呢&#xff1f;以下举报例…

使用 Astra DB、LangChain 和 Vercel 构建维基百科聊天机器人

一、说明 你有多少次问谷歌一个问题&#xff0c;只是为了得到一个维基百科的链接&#xff0c;需要你点击、加载网站并滚动才能找到答案&#xff1f;那么自动问题搜索又是如何呢&#xff1f; 维基百科是搜索引擎的顶级搜索结果&#xff0c;因为它是一个值得信赖的网站;人们认为那…

《游戏引擎架构》 -- 学习2

声明&#xff0c;定义&#xff0c;以及链接规范 翻译单元 声明与定义 链接规范 C/C 内存布局 可执行映像 程序堆栈 动态分配的堆 对象的内存布局 kilobyte 和 kibibyte 流水线缓存以及优化 未完待续。。。

async 与 await(JavaScript)

目录捏 前言一、async二、await三、使用方法总结 前言 async / await 是 ES2017(ES8) 提出的基于 Promise 解决异步的最终方案。上一篇文章介绍了 回调地狱 与 Promise&#xff08;JavaScript&#xff09;&#xff0c;因为 Promise 的编程模型依然充斥着大量的 then 方法&#…

软件测试工程师——缺陷(一篇足以)

目录 定义 缺陷的类型 缺陷的严重程度 缺陷的状态 缺陷的根源 ​缺陷的来源 缺陷的起源 缺陷的生命周期 缺陷的识别 缺陷报告模板 编写缺陷报告的目的 缺陷报告编写的准则 缺陷描述的准则 定义 1. 软件未实现产品说明书中所提及的功能 2. 软件实现了产品说明书中…

stable_diffusion提示词编写笔记(1)

stable_diffusion提示词编写笔记(1) start 总结一下AI绘画学到的知识。 一.提示词分两种&#xff1a; 1.正向提示词&#xff1b; 2.反向提示词&#xff1b; 一个对应你希望图形包含的内容提示词&#xff0c;一个对应你不希望图形出现的内容提示词。 二.如何书写提示词 1.内…

连杆的形状优化

前言 本示例使用优化模块在不改变连杆体积的情况下将连杆中的应力集中降至最低。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 此示例说明了连杆的形状优化。形状优化对曲面节点在设计区域中的位置进行轻微修改&#xff0c;以实现优化的解决方案。形状优…

pwn学习笔记(2)ret_2_text_or_shellcode

pwn学习笔记&#xff08;2&#xff09; 1.三种常见的寄存器&#xff1a; ​ ax寄存器&#xff1a;通用寄存器&#xff0c;可用于存放多种数据 ​ bp寄存器&#xff1a;存放的是栈帧的栈底地址 ​ sp寄存器&#xff1a;存放的是栈顶的地址 2.栈帧与栈工作的简介&#xff1a…

Linux(Ubuntu)环境下安装卸载Python3(避免踩坑)

一、安装 第一步&#xff1a; 进入/usr/local/目录&#xff0c;下载Python3&#xff0c;这里我下载的是python 3.8.10&#xff0c;如果要下载其他版本改下链接中的版本号&#xff0c;需与官网版本号对应。 wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz第…

HTML小白入门学习-表格标签

一、前言 话说上文&#xff0c;我们对HTML的表单类标签进行简单的学习和认识&#xff0c; 分别是<form>、<input>、<textarea>、<label>、<select>和<button>这几个标签。 与表单标签有一字之别的表格标签&#xff0c;就是本文的主角。本…

【MySQL】学习和总结DCL的权限控制

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Bl9kYeLf8GfpdQgL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Rating组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Rating组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Rating组件 提供在给定范围内选择评分的组件。 子组件 无。 接口 Rating(opt…