C++基础语法:判断语句
在现实中,我们通常会预见类似于“如果X,则Y”的情况,可以被表示为如下图所示:
这个在C++语言中,可以采用if-else语句来进行实现。
以考试成绩为例。如果考试成绩大于60,则及格,反之则不及格:
#include <iostream>
using namespace std;int main(){int score;cin >> score;if (score >= 60){cout << "及格" << endl;}else{cout << "不及格" << endl;}return 0;
}
当输入的成绩大于或者等于60,则if语句中的条件被满足,执行if语句中的代码;反之则执行else语句中的代码。
注意,if语句后面是不可以加分号的:
if (score >= 60);
因为在C++中,可以有空语句:
;
所以如果加上分号会变成:如果if中的判断条件被满足,则执行空语句。
当然,按照C++的语法规则,实际上我们也可以这样写:
#include <iostream>
using namespace std;int main(){int score;cin >> score;if (score >= 60) cout << "及格" << endl;else cout << "不及格" << endl;return 0;
}
如果条件
如果有多种情况,则判断的结果会如下图所示:
我们可以对成绩做出这样的分类:
- 60以下:不及格
- 60以上,70以下:及格
- 70以上,90以下:优秀
- 90以上:太棒了
那么我们可以写出如下所示的代码:
#include <iostream>
using namespace std;int main(){int score;cin >> score;if (score < 60){cout << "不及格" << endl;}else{if (score <70){cout << "及格" << endl;} else if ( 70 <=score && score < 90){cout << "优秀" << endl;} else {cout << "太棒了" << endl;}}return 0;
}
if-else if-else可以用来应对多种需要进行判断的情况,而if语句中也可以嵌套if语句。
需要注意的地方在于:
a < b < c
是不一样的情况。
前者会先对 a < b 进行判断,如果 a < b 成立,则得到一个1(True)的结果;反之则得到一个0(False)的结果,然后将这个结果和c进行比较。
在C++语言中,常用的6中关系判断运算符如下表所示:
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 不为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (A > B) 不为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (A < B) 为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (A >= B) 不为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (A <= B) 为真。 |
此外C++语言也提供了3个逻辑运算符来进行判断:
运算符 | 描述 | 实例 |
&& | 称为逻辑与运算符。如果两个操作数都 true,则条件为 true。 | (A && B) 为 false。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。 | (A || B) 为 true。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。 | !(A && B) 为 true。 |
如果我们有着大量的需要判断的情况,下我们当然也可以采用if语句嵌套的形式来实现,或者采用if-else if-else的形式来实现,但是当可能的情况更多的时候,采用这样的写法会变得非常的繁琐和难以阅读。
在这样的情况之下,我们会采用switch-case语句来实现条件判断,代码结构如下图所示:
代码格式如下所示:
switch(expression){case constant-expression :statement(s);break; // 可选的case constant-expression :statement(s);break; // 可选的// 您可以有任意数量的 case 语句default : // 可选的statement(s);
}
需要注意的地方在于:
- switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
- 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
- case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
- 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
- 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
- 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会继续后续的 case,直到遇到 break 为止。
- 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
我们可以来想一下这样的一道题目:要求用户输入两个整数和一个符号,改符号为四则运算符(+,-,*,/),而程序会按照输入的符号对两个数字进行运行。
那么用switch来实现代码,如下所示:
#include <iostream>
using namespace std;int main(){int a,b;char sign;cin >> a >> b >> sign;switch(sign){case '+':cout << a+b << endl;break;case '-':cout << a-b << endl;break;case '*':cout << a*b << endl;break;case '/':cout << a/b << endl;break;default:cout << "输入不合法" << endl;break;}return 0;
}
不过这个程序有一个漏洞,就是b不能为0且符号为除号的时候,所以需要对b=0且符号为除号的情况做出一个反应。
条件判断知识点中有一个常见的问题,就是如何判断闰年,闰年有两种情况:
- 当数字能够被100整除的时候,需要能够被400整除
- 当数字不能够被100整除的时候,只需要能够被4整除(能被100整除,也一定能够被4整除,因为100是4的倍数)
这道题是一道非常经典的问题,我们也能够这么写:
#include <iostream>
using namespace std;int main(){int year;cin >> year;//可以被400整除(那么一定也能够被100整除) 或者 能被100整除的同时能够被4整除if (year%400 == 0 || year %100 && year % 4 == 0 ){cout << year << "是闰年" << endl;} else{cout << year << "不是闰年" << endl;}return 0;
}
C++基础语法:判断语句相关推荐
- java基础语法if语句、循环
java基础语法 Java 条件语句 if语句 if...else语句 if...else if...else 语句 嵌套的 if-else 语句 Java 循环语句 while 循环 do-whil ...
- Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定
Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...
- 一些基础条件判断语句
1, 条件判断语句(If语句) 执行流程 .if语句在执行时,会先对条件表达式进行求值判断 语法 .if条件表达式: 代码块 语法 代码块中保存着一组代码,同一代码块中的代码,或者都执行,或者都不执行 ...
- Python基础 if判断语句 篇
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文 系列文章目录 Python 零基础到入门数据类型篇 Python基础 字符串常用方法篇 Python基 ...
- Python基础(if判断语句/逻辑运算符)
生活中我们常使用一些判断,比如满足某个条件,才能做某件事,如果不满足某个条件,就只能做另外一件事,或者什么也不做,而在Python中,我们使用if语句来进行条件的判断 if判断语句基本语法 if 判断 ...
- Java的基础:判断语句if、switch
程序流程说明 程序流程可以分为以下三种: 顺序结构:程序从上向下逐行逐条执行,只能向下: 分支结构:选择结构,判断语句 循环结构:重复执行一段或一条语句 1.If语句 If语句主要用于分支结构,表示判 ...
- python基础-分支判断语句(4)
1.分支判断语句 1.单一if结构 2.if-else结构 3.if-elif-else结构 4.if嵌套结构 2.单一if结构 只有一种情况的时候 if 条件:执行语句 说明: if后面的条件成立, ...
- python出租车计费_python的基础程序——判断语句(以出租车计费为例)
判断语句用于检测某个条件是否成立.如果成立,则执行判断语句内的程序:否则,跳过判断语句,执行后面的内容.(判断语句分为三类if,else,switch.但python编程语言中一般没有switch). ...
- python基础 if判断语句
1.if后面是True的话,就执行if里面的语句,也就是满足if后面的条件的话,就执行if后面的语句 结果: 2.if后面是False,也就是不执行,直接跳过,代码如下: 结果: 3.记住我们pyth ...
- Python基础——PyCharm版本——第四章、基础语法-分支语句(条件判断if语句)
最新文章
- Python:模拟登录、点击和执行 JavaScript 语句案例
- 【听课笔记】国立交通大学《如何成功投稿国际科学期刊》 投稿准备+审稿流程剖析...
- Java将异常入库_Exception异常库
- matlab fix函数_Matlab课后答案第四章
- Begin Your Service Journey
- 数据库Mysql的学习(六)-子查询和多表操作
- 【软工项目组】第九次会议
- 用java servlet Filter编写过滤器
- C语言 模拟实现 strlen strcat strcpy函数
- 从零开始搭二维激光SLAM --- 总结
- 实践的意义——写给图像处理算法爱好者的建议
- VB 2010中Excel文件处理的一个奇怪问题
- 发那科机器人示教器键盘_不限 发那科机器人示教器触摸屏急停按键失效维修...
- Js 摄氏度和华氏度的转换
- unity中VideoPlayer播放视频,使用Shader除去黑底且无黑边
- ★大塚 愛【LOVE IS BORN】~3rd Anniversary 2006~のライブDVD★
- python-request(基本用法)
- C语言写一个函数,可以逆序一个字符串的内容。
- 【解决方案】Android开发填坑之RecyclerView刷新闪烁
- 崔岩的笔记——动态时间规整算法(Dynamic Time Warping,DTW)
热门文章
- a16z:如何建设基于声誉的去中心化身份系统? |链捕手
- Rootkit For Windows
- 【egret】自动打包(iOS、Android)
- html css怎样让鼠标悬停延时,鼠标悬停效果csscss鼠标悬停效果怎么写
- AE中Add-In插件开发实例
- conemu shell_告别CMD.windows终端神器conemu设置
- windows 终端工具推荐 —— cmder、ConEmu
- 文件服务器s3搭建,用AWS S3搭建小程序资源服务器
- 如何快速删除电脑里大量的文件夹而保留文件?
- 故宫停止开放?小县城老民警蹲守故宫6年拍下3万张绝美照片,连单霁翔院长都忍不住点赞!...