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

C ++の条件付き三項演算子(?:)


条件演算子(?:)は三項演算子です(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#の三項演算子

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

  2. Pythonの三項演算子?

    多くのプログラミング言語は、基本的に条件式を定義する三項演算子をサポートしています。 同様に、Pythonの三項演算子は、バイナリ条件の結果に基づいて値を返すために使用されます。入力としてバイナリ値(条件)を受け取るため、「if-else」条件ブロックに似ています。ただし、関数と同様に動作する値も返します。 構文 [on_true] if [expression] else [on_false] 2つの整数を比較する1つの簡単なプログラムを書いてみましょう- a。 pythonif-elseステートメントの使用- >>> x, y = 5, 6 >>>