C++ 條件運算符 ? :

C++ 運算符 C++ 運算符

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 << "value of x: " << x << endl; return 0; }

當上面的代碼被編譯和執行時,它會產生下列結果:

value of x: 40

C++ 運算符 C++ 運算符