C++ 判断语句
主流的程序设计语言一般有三大流程控制语句:分别是顺序控制、分支控制和循环控制。利用分支控制和循环控制,可 以让程序的执行千变万化,本文先来介绍分支控制。
C++ 编程语言提供了以下类型的判断语句(主要是 if 和 switch 语句),通过判断语句的条件(真或假),决定程序执行的路径或返回值。
if 语句
在 C++ 中,关键字 if 是用于测试某个条件的语句是否满足一定的条件,如果满足特定的条件,则会执行 if 后代码块,否则就忽略该代码块继续执行后续的代码。
语法:
if (condition)
{
//do something
}
其中,condition 是条件判断语句,必须返回真或者假。
if-else 语句
在 C++ 中,关键字 else 是用于在 if 条件不满足的情况下,执行的代码逻辑。
语法:
if (condition)
{
// do something
}
else
{
// do something1
}
else 语句可以直接配套 if 语句使用,如果 if 条件判断不成立,则执行 else 里面的代码逻辑。
需要注意:else 后面是没有加判断条件的,且不能加判断条件,否则会编译错误。
if-else if 语句
在 C++ 中,else if 关键字用于在 if 语句条件不满足的情况下,继续执行 else if 里面的逻辑判断,如果满足条件则执行 else if 缩进里面的逻辑。
语法:
if (condition)
{
// do something
}
else if (condition1)
{
// do something1
}
else if (condition2)
{
// do something2
}
else
{
// do something3
}
else if 语句只能写在 if 语句的同级代码的后面,且 else if 语句可以写任意多个。
嵌套 if 语句
在 C++ 中,if 语句、else if 语句和 else 语句可以进行任意的嵌套。
语法:
if (condition)
{
if (condition1)
{
// do something1
}
else if (condition2)
{
// do something2
}
}
else
{
if (condition3)
{
// do something3
}
else if (condition4)
{
// do something4
}
else
{
// do something5
}
}
可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。但不建议嵌套超过 3 层。
switch 语句
switch 语句的作用类似于 if 语句,用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。在需要测试一个变量等于多个值时的情况非常适合。
语法:
switch (expression) {
case val1:
//do something
break;
case val2:
//do something
break;
default:
//do something
break;
}
说明:如果 expression 的值满足条件 val1,那么就会执行 val1 下面的代码块,如果 expression 的值满足 val2,那么就会执行 val2 下面的代码块,如果所有条件都不满足,那么就执行 default 语句下面的代码块。
注意:
- C++ 的 switch 语句如果匹配成功后,不需要继续匹配其他项,那么需要在每个项后面加 break 语句。
- 如果希望在任何一个都没有匹配成功后,使用默认的 case,那么可以使用 default 语句。
- 可以在一个 switch 语句内使用另一个 switch 语句。
? : 三目运算符
其实我们已经在 C++运算符 中介绍过,在一些简单的控制条件中,三目运算符 ? :
可以用来替代 if...else
语句。其语法结构如下:
Exp1 ? Exp2 : Exp3;
Exp1、Exp2 和 Exp3 是表达式。
- ? 表达式的值是由 Exp1 决定的;
- 如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值;
- 如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。