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。請看下面的示例:
#include <iostream>
using namespace std;
int main ()
{
// 局部變量聲明
int x, y = 10;
x = (y < 10) ? 30 : 40;
cout << "x的值: " << x << endl;
return 0;
}當上面的代碼被編譯和執(zhí)行時,它會產生下列結果:
x的值: 40