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