これは、条件演算子または三項演算子 (3 つのオペランド (引数) を取る演算子) と呼ばれ、通常はこれが唯一の演算子であるため、これを行います。
インライン if (iif)、三項 if または疑問符演算子としても知られています。
これらはステートメントではなく式であるため、実際にはかなり便利な機能であり、したがって、たとえばconstexpr
関数、代入などで使用できます。
C++ 構文は次のとおりです。
logical-or-expression ? expression : assignment-expression
次のように使用されます。
condition ? condition_is_true_expression : condition_is_false_expression
つまり、 が にcondition
評価true
されるcondition_is_true_expression
場合、式は に評価されます。それ以外の場合、式は に評価されcondition_is_false_expression
ます。
したがって、あなたの場合、result
常に value が割り当てられます1
。
注 1; 条件演算子を使用しているときによくある間違いは、演算子の優先順位がかなり低いことを忘れることです。
注 2; 'if...else'
一部の関数型言語は、OCaml などの式構造を持っているため、この演算子を提供しません。
let value = if b then 1 else 2
注3; 完全に有効な面白い使用例は、条件演算子を使用して、2 つの変数のどちらに値を代入するかを決定することです。
(condition ? x : y) = 1;
これは実際には括弧なしで得られるものであるため、括弧が必要であることに注意してください。
condition ? x : (y = 1);