C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++の三項演算子(?X:Y)とは何ですか?


条件演算子(?:)は三項演算子です(3つのオペランドを取ります)。条件演算子は次のように機能します-

  • 最初のオペランドは暗黙的にboolに変換されます。続行する前に評価され、すべての副作用が完了します。
  • 最初のオペランドがtrue(1)と評価された場合、2番目のオペランドが評価されます。
  • 最初のオペランドがfalse(0)と評価された場合、3番目のオペランドが評価されます。
  • 条件演算子の結果は、評価されたオペランド(2番目または3番目)の結果です。条件式では、最後の2つのオペランドのうち1つだけが評価されます。条件演算子の評価は非常に複雑です。上記の手順は、簡単な紹介でした。条件式には、右から左への結合性があります。最初のオペランドは、整数型またはポインタ型である必要があります。
  • 次の規則が2番目と3番目のオペランドに適用されます-
    • 両方のオペランドが同じタイプの場合、結果はそのタイプになります。
    • 両方のオペランドが算術型または列挙型の場合、通常の算術
  • 変換(標準変換でカバー)は、それらを共通のタイプに変換するために実行されます。
  • 両方のオペランドがポインター型である場合、または一方がポインター型で、もう一方が0と評価される定数式である場合、ポインター変換が実行されて、それらを共通の型に変換します。
  • 両方のオペランドが参照型の場合、それらを共通の型に変換するために参照変換が実行されます。
  • 両方のオペランドがvoid型の場合、共通の型はvoid型です。
  • 両方のオペランドが同じユーザー定義タイプの場合、共通のタイプはそのタイプです。
  • オペランドの型が異なり、オペランドの少なくとも1つがユーザー定義の型である場合、共通の型を決定するために言語規則が使用されます。 (以下の警告を参照してください。)
#include <iostream>  
using namespace std;  
int main() {  
   int i = 1, j = 2;  
   cout << ( i > j ? i : j ) << " is greater." << endl;  
}
出力 これにより出力が得られます-

2 is greater.

  1. C#の三項演算子とは何ですか?

    3項演算子は、C#の条件演算子です。 3つの引数を取り、ブール式を評価します。 例- y = (z == 1) ? 100 : 180; 上記では、第1オペランドがtrue(1)と評価された場合、第2オペランドが評価されます。最初のオペランドがfalse(0)と評価された場合、3番目のオペランドが評価されます。 以下は例です- 例 using System; namespace Demo {    class Program {       static void Main(string[] args) {   &nbs

  2. C#の三項演算子/条件演算​​子とは何ですか?

    三項演算子は、C#の条件演算子です。 3つの引数を取り、ブール式を評価します。 例- y = (x == 1) ? 70 : 100; 上記では、第1オペランドがtrue(1)と評価された場合、第2オペランドが評価されます。最初のオペランドがfalse(0)と評価された場合、3番目のオペランドが評価されます。 以下は例です- 例 using System; namespace DEMO {    class Program {       static void Main(string[] args) {