C++ 條件運(yùn)算符 ? :

C++ 運(yùn)算符 C++ 運(yùn)算符

Exp1 ? Exp2 : Exp3;

其中,Exp1、Exp2 和 Exp3 是表達(dá)式。請注意冒號的使用和位置。? : 表達(dá)式的值取決于 Exp1 的計(jì)算結(jié)果。如果 Exp1 為真,則計(jì)算 Exp2 的值,且 Exp2 的計(jì)算結(jié)果則為整個(gè) ? : 表達(dá)式的值。如果 Exp1 為假,則計(jì)算 Exp3 的值,且 Exp3 的計(jì)算結(jié)果則為整個(gè) ? : 表達(dá)式的值。

? 被稱為三元運(yùn)算符,因?yàn)樗枰齻€(gè)操作數(shù),可以用來代替如下所示的 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。請看下面的實(shí)例:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部變量聲明
   int x, y = 10;

   x = (y < 10) ? 30 : 40;

   cout << "value of x: " << x << endl;
 
   return 0;
}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會產(chǎn)生下列結(jié)果:

value of x: 40

C++ 運(yùn)算符 C++ 運(yùn)算符