C++ 笔记(12)— 判断(if/if...else/switch、条件运算符)
1. if 语句
C++
中 if
语句的语法:
if (boolean_expression)
{// 如果布尔表达式为真将执行的语句
}
如果布尔表达式为 true
,则 if
语句内的代码块将被执行。如果布尔表达式为 false
,则 if
语句结束后的第一组代码(闭括号后)将被执行。
C++
语言把任何非零和非空的值假定为 true
,把零或 null
假定为 false
。因此,在条件语句中,只要表达式的结果不为零(负数或正数),就被视为结果为 true
。
2. if … else 语句
C++
中 if ... else
语句的语法:
if (boolean_expression)
{// 如果布尔表达式为真将执行的语句
}
else
{// 如果布尔表达式为假将执行的语句
}
3. if…else if…else 语句
一个 if
语句后可跟一个可选的 else if...else
语句,这可用于测试多种条件。当使用 if...else if...else
语句时,以下几点需要注意:
- 一个
if
后可跟零个或一个else
,else
必须在所有else if
之后; - 一个
if
后可跟零个或多个else if
,else if
必须在else
之前; - 一旦某个
else if
匹配成功,其他的else if
或else
将不会被执行;
C++
中的 if...else if...else
语句的语法:
if (boolean_expression 1)
{// 当布尔表达式 1 为真时执行
}
else if ( boolean_expression 2)
{// 当布尔表达式 2 为真时执行
}
else if ( boolean_expression 3)
{// 当布尔表达式 3 为真时执行
}
else
{// 当上面条件都不为真时执行
}
4. 嵌套 if
C++
中 嵌套 if
语句的语法:
if (boolean_expression 1)
{// 当布尔表达式 1 为真时执行if (boolean_expression 2){// 当布尔表达式 2 为真时执行}
}
5. switch 语句
一个 switch
语句允许测试一个变量等于多个值时的情况。每个值称为一个 case
,且被测试的变量会对每个 switch case
进行检查。
C++
中 switch
语句的语法:
switch (expression) {case constant-expression :statement(s);break; // 可选的case constant-expression :statement(s);break; // 可选的// 可以有任意数量的 case 语句default : // 可选的statement(s);
}
switch
语句必须遵循下面的规则:
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
语句不是必需的。
6. 三目运算符
三目运算符也叫作条件运算符,它的一般形式如下:
Exp1 ? Exp2 : Exp3;
其中, Exp1
、 Exp2
和 Exp3
是表达式。请注意,冒号的使用和位置。?
表达式的值是由 Exp1
决定的。
- 如果
Exp1
为真,则计算Exp2
的值,结果作为整个 ? 表达式的值; - 如果
Exp1
为假,则计算Exp3
的值,结果作为整个 ? 表达式的值;
C++ 笔记(12)— 判断(if/if...else/switch、条件运算符)相关推荐
- Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从
Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...
- 2021李宏毅机器学习笔记--12 attack ML models
2021李宏毅机器学习笔记--12 attack ML models 摘要 一.图像模型的攻击 1.1原理 1.2Constraint 1.3参数训练 1.4一个例子 1.5攻击方法 1.5.1FGS ...
- 《JavaScript高级程序设计》读书笔记 -12.1 window对象
<JavaScript高级程序设计>读书笔记 -12.1 window对象 12.1 window对象 12.1.1 Global作用域 12.1.2 窗口关系[不是很懂] 12.1.3 ...
- 【计算机网络学习笔记12】交换技术(上)
[计算机网络学习笔记12]交换技术(上) 经典局域网的交换技术 概念 以太网是由Xerox公司创建并由Xerox.intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议 ...
- 软件测试工程师学习笔记12 - 数据库篇
软件测试工程师学习笔记 -12 一.入门必读 二.Linux 三.数据库 1.MySQL基础 1)别名与重复记录 2)条件查询 3)聚合函数 4)数据分组 5)一个练习 6)分组后的数据筛选 7)数据 ...
- [网络安全学习篇12]:数据链路层及交换机的学习(千峰网络安全视频笔记 12 day)
引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...
- 顺序结构,判断结构 if,switch
1:顺序结构:从上往下执行程序代码,为顺序结构 ---------------------------------------------------------------------- 2:判断结 ...
- MyBatis-学习笔记12【12.Mybatis注解开发】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- 第十八章 12判断string类型字符串是否为空
// 12判断string类型字符串是否为空 /*#include <iostream> #include <string> using namespace std; int ...
- golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...
最新文章
- python元素平方和,模长
- android开发系列之多线程
- mysql explain详解_数据库mysql(1)——B+TREE索引原理
- 【图像分割模型】多感受野的金字塔结构—PSPNet
- 百度api:根据经纬度获取地理位置信息
- Vue.js前后端分离2
- 果断拿下4000万美元D轮融资,Rancher发力中国本土化与国产化!
- 精通Windows Sockets 网络开发-基于Visual C++实现
- 玩客云pc端_玩客云电脑客户端-玩客云pc端下载 v1.4.5.112官方版--pc6下载站
- UVa 12206 (字符串哈希) Stammering Aliens
- 记录——《C Primer Plus (第五版)》第十章编程练习第一题
- executorservice 重启_iPhone7使用久了突然手机自动重启,多半原因出在这儿,进来看看...
- 【codevs1231】最优布线问题
- RoaringBitmap 原理
- 利用 ASP.NET 2.0 中的 Web 部件和个性化释放站点的潜能 --作者:Steven A. Smith
- 计算机在网络通信方面的应用,分析计算机技术在通信中的应用
- mac下使用github 上传代码
- wps打开word是绿色的怎么解决?
- 下单以及订单处理流程描述
- 使用@Aspect不起作用