じょうけんオペレータ

1048 ワード

C++には注意すべきオペレータがあり、このオペレータ石C++の中で唯一の三元オペレータで、このオペレータが条件オペレータです.
使用方法:
    cond ? value1 : value2;
    
概要:
この式の解の順序はcondの値が0に等しいかどうかを計算し、0(すなわちfalse)に等しい場合、value 2を返します(value 2が式である場合、式の値を計算し、計算結果を返します).そうでない場合、value 1を返します(value 2が式である場合、式の値を計算し、計算結果を返します).
3 Dオペレータを使用する場合は、次の点に注意してください.
(1)トリプルオペレータの深さネストを避ける.以下に,プログラム猿にとっては比較的大きくなるが,自分が何かを油断すると予想外の結果をもたらす可能性があり,またこのようなコードの可読性が低下する.
        int value =   i > j ? i > k ? i : k : j > k ? j : k;
上の式を分析するときは、3元オペレータが必要ですか?と:全体として.左から右を見る原則に基づいて、最初の疑問符と最後から2番目のコロンが一致する.
(2)条件式の優先度が比較的低いので,このオペレータの操作を括弧で囲んだほうがよい.このような態様では、オペレータの優先度を無視して予想外の結果をもたらすことを回避し、コードの可読性を向上させる.以下にprimerの例をいくつか挙げます.
cout << (i < j ? i : j);// ok: prints larger of i and j
cout << (i < j) ? i : j;// prints 1 or 0!
cout << i < j ? i : j;// error: compares cout to int

最初の式には問題はありません.
2番目の式に問題があり、iとjの比較結果をcoutの操作数として0または1を出力し、coutの操作結果を条件として3元オペレータの結果を判断する.coutの値が0に等しくない場合、3元オペレータを返す結果はiであり、そうでない場合はjである.