logo

C++ の三項演算子または条件演算子

C++ では、 三項 または 条件演算子 ( ? : ) 条件文を記述する最も短い形式です。これは、条件付きコードを実行するために、if-else の代わりにインライン条件文として使用できます。

三項演算子 ( ? : ) の構文

三項 (または条件) 演算子の構文は次のとおりです。



クエリセレクター
expression   ?     statement_1     :     statement_2;>

名前が示すように、三項演算子は 3 つのオペランドに作用します。

  • 表現: 評価される条件。
  • ステートメント_1 : 式が true と評価された場合に実行されるステートメント。
  • ステートメント_2: 式が false と評価された場合に実行されるコード。

// 画像

上記の三項演算子のステートメントは、以下の if-else ステートメントと同等です。



  if   ( condition ) {     statement1;  }   else   {    statement2;  }>

C++ の三項演算子の例

C++






サイラ・バヌ俳優
// C++ program to illustrate the use of ternary operator> #include> using> namespace> std;> > int> main()> {> > >// creating a variable> >int> num, test = 40;> > >// assigning the value of num based on the value of test> >// variable> >num = test <10 ? 10 : test + 10;> > >printf>(>'Num - Test = %d'>, num - test);> > >return> 0;> }>

>

>

出力

Num - Test = 10>

上記のコードでは、三項演算子を使用して変数の値を割り当てています。 1つで という名前の別の変数の値に応じて テスト。

注記: 三項演算子の優先順位は 3 番目に低いため、不適切な演算子の優先順位管理によるエラーを回避できるような式を使用する必要があります。

C++ ネストされた三項演算子

ネストされた三項演算子は、別の三項演算子の内部で三項演算子を使用するものとして定義されます。 if-else ステートメントと同様に、三項演算子も相互にネストできます。

C++ での三項演算子のネストの例

以下のコードでは、ネストされた三項演算子を使用して 3 つの数値のうちの最大のものを見つけます。

f映画インド

C++




// C++ program to find the largest of the three number using> // ternary operator> #include> using> namespace> std;> > int> main()> {> > >// Initialize variable> >int> A = 39, B = 10, C = 23;> > >// Evaluate largest of three using ternary operator> >int> maxNum> >= (A>B)? ((A> C) ? A : C) : ((B> C) ? B : C);>> > >cout <<>'Largest number is '> << maxNum << endl;> > >return> 0;> }>

>

Javaの文字列を逆にする
>

出力

Largest number is 39>

ご覧のとおり、三項演算子を相互にネストすることは可能ですが、コードは読んで理解するのが複雑になります。したがって、一般に、ネストされた三項演算子の使用は避けられます。

さらに、三項演算子は短い条件付きコードにのみ使用してください。コードが大きい場合は、他の条件ステートメントを優先する必要があります。