C++ 条件运算符 ?:
?:
被称为三元运算符,因为它需要三个操作数,可以用来代替如下所示的 if-else 语句。
?: 三元运算符语法格式如下
Exp1 ? Exp2 : Exp3;
Exp1、Exp2 和 Exp3 是表达式。请注意冒号的使用和位置
?: 表达式的值取决于 Exp1 的计算结果
- 如果 Exp1 为真,则计算 Exp2 的值,且 Exp2 的计算结果则为整个 ? : 表达式的值。
- 如果 Exp1 为假,则计算 Exp3 的值,且 Exp3 的计算结果则为整个 ? : 表达式的值。
?: 可以用来代替如下所示的 if-else 语句
if(condition){ var = X; }else{ var = Y; }
例如下面的代码:
if(y < 10){ var = 30; }else{ var = 40; }
使用 ?:
运算符重写如下:
var = (y < 10) ? 30 : 40;
上面的语句,如果 y 小于 10,则 var 被赋值为 30,如果 y 不小于 10,则 var 被赋值为 40。
范例 : 三元运算符的使用
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> using namespace std; int main () { // 局部变量声明 int x, y = 5; x = (y < 4) ? 17 : 13; cout << "value of x: " << x << endl; return 0; }
编译和运行以上范例,输出结果如下:
$ g++ main.cpp && ./a.out value of x: 13