在现实中,我们通常会预见类似于“如果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且符号为除号的情况做出一个反应。

条件判断知识点中有一个常见的问题,就是如何判断闰年,闰年有两种情况:

  1. 当数字能够被100整除的时候,需要能够被400整除
  2. 当数字不能够被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++基础语法:判断语句相关推荐

  1. java基础语法if语句、循环

    java基础语法 Java 条件语句 if语句 if...else语句 if...else if...else 语句 嵌套的 if-else 语句 Java 循环语句 while 循环 do-whil ...

  2. Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定

    Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...

  3. 一些基础条件判断语句

    1, 条件判断语句(If语句) 执行流程 .if语句在执行时,会先对条件表达式进行求值判断 语法 .if条件表达式: 代码块 语法 代码块中保存着一组代码,同一代码块中的代码,或者都执行,或者都不执行 ...

  4. Python基础 if判断语句 篇

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文 系列文章目录 Python 零基础到入门数据类型篇         Python基础 字符串常用方法篇          Python基 ...

  5. Python基础(if判断语句/逻辑运算符)

    生活中我们常使用一些判断,比如满足某个条件,才能做某件事,如果不满足某个条件,就只能做另外一件事,或者什么也不做,而在Python中,我们使用if语句来进行条件的判断 if判断语句基本语法 if 判断 ...

  6. Java的基础:判断语句if、switch

    程序流程说明 程序流程可以分为以下三种: 顺序结构:程序从上向下逐行逐条执行,只能向下: 分支结构:选择结构,判断语句 循环结构:重复执行一段或一条语句 1.If语句 If语句主要用于分支结构,表示判 ...

  7. python基础-分支判断语句(4)

    1.分支判断语句 1.单一if结构 2.if-else结构 3.if-elif-else结构 4.if嵌套结构 2.单一if结构 只有一种情况的时候 if 条件:执行语句 说明: if后面的条件成立, ...

  8. python出租车计费_python的基础程序——判断语句(以出租车计费为例)

    判断语句用于检测某个条件是否成立.如果成立,则执行判断语句内的程序:否则,跳过判断语句,执行后面的内容.(判断语句分为三类if,else,switch.但python编程语言中一般没有switch). ...

  9. python基础 if判断语句

    1.if后面是True的话,就执行if里面的语句,也就是满足if后面的条件的话,就执行if后面的语句 结果: 2.if后面是False,也就是不执行,直接跳过,代码如下: 结果: 3.记住我们pyth ...

  10. Python基础——PyCharm版本——第四章、基础语法-分支语句(条件判断if语句)

最新文章

  1. Python:模拟登录、点击和执行 JavaScript 语句案例
  2. 【听课笔记】国立交通大学《如何成功投稿国际科学期刊》 投稿准备+审稿流程剖析...
  3. Java将异常入库_Exception异常库
  4. matlab fix函数_Matlab课后答案第四章
  5. Begin Your Service Journey
  6. 数据库Mysql的学习(六)-子查询和多表操作
  7. 【软工项目组】第九次会议
  8. 用java servlet Filter编写过滤器
  9. C语言 模拟实现 strlen strcat strcpy函数
  10. 从零开始搭二维激光SLAM --- 总结
  11. 实践的意义——写给图像处理算法爱好者的建议
  12. VB 2010中Excel文件处理的一个奇怪问题
  13. 发那科机器人示教器键盘_不限 发那科机器人示教器触摸屏急停按键失效维修...
  14. Js 摄氏度和华氏度的转换
  15. unity中VideoPlayer播放视频,使用Shader除去黑底且无黑边
  16. ★大塚 愛【LOVE IS BORN】~3rd Anniversary 2006~のライブDVD★
  17. python-request(基本用法)
  18. C语言写一个函数,可以逆序一个字符串的内容。
  19. 【解决方案】Android开发填坑之RecyclerView刷新闪烁
  20. 崔岩的笔记——动态时间规整算法(Dynamic Time Warping,DTW)

热门文章

  1. a16z:如何建设基于声誉的去中心化身份系统? |链捕手
  2. Rootkit For Windows
  3. 【egret】自动打包(iOS、Android)
  4. html css怎样让鼠标悬停延时,鼠标悬停效果csscss鼠标悬停效果怎么写
  5. AE中Add-In插件开发实例
  6. conemu shell_告别CMD.windows终端神器conemu设置
  7. windows 终端工具推荐 —— cmder、ConEmu
  8. 文件服务器s3搭建,用AWS S3搭建小程序资源服务器
  9. 如何快速删除电脑里大量的文件夹而保留文件?
  10. 故宫停止开放?小县城老民警蹲守故宫6年拍下3万张绝美照片,连单霁翔院长都忍不住点赞!...