演習 - 条件演算子を実装する
- 7 分
顧客による購入が販売促進割引の対象であるかどうかをすばやく判断する必要があるとします。 販売促進の詳細には、購入額が 1000 ユーロより大きい場合、その購入は 100 ユーロ割引の対象であることが示されています。 購入金額が 1000 ユーロ以下の場合、その購入は 50 ユーロ割引の対象となります。
確かに if ... elseif ... else 分岐コンストラクトを使用してこのビジネス ルールを表現することもできますが、"条件演算子" を使用してプロモーション割引の適格性を評価する方が良い選択かもしれません。 条件演算子に使用する書式はコンパクトなので、コードが数行減り、コードの意図を明確にすることが可能です。
条件演算子とは
"条件演算子" では、ブール式を評価し、そのブール式が true に評価されるか、false に評価されるかに応じて、2 つの結果のうちの 1 つを返します。?: ''条件演算子'' は、一般に三項条件演算子と呼ばれます。
基本的な書式を以下に示します。
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
少し時間を取って、条件演算子をプロモーション割引シナリオにどのように適用するかを検討してください。 目標は、割引率を示すメッセージを顧客に表示することです。 割引額は、購入に 1000 ユーロを超える額を費やしたかどうかに基づきます。
条件演算子を使用するコードを追加する
Visual Studio Code で空の Program.cs ファイルが開かれていることを確認します。 必要であれば、Visual Studio Code を開き、次の手順のようにしてエディターで Program.cs ファイルを準備します。
- [ ファイル ] メニューの [ フォルダーを開く] を選択します。
- [フォルダーを開く] ダイアログを使用して、 CsharpProjects フォルダーに移動して開きます。
- Visual Studio Code EXPLORER パネルで、 Program.csを選択します。
- Visual Studio Code の選択 メニューで、[ すべて選択] を選択し、Delete キーを押します。
Visual Studio Code エディターに次のコードを入力します。
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");[Visual Studio Code ファイル ] メニューの [ 保存] を選択します。
コードをビルドまたは実行する前に、Program.cs ファイルを保存する必要があります。
[エクスプローラー] パネルで、TestProject フォルダーの場所にあるターミナルを開くには、[ TestProject] を右クリックし、[ 統合ターミナルで開く] を選択します。
コマンド プロンプトを表示する [ターミナル] パネルが開くはずです。 コマンド プロンプトには、TestProject フォルダーの場所のフォルダー パスが表示されるはずです。
ターミナル コマンド プロンプトで、コードを実行するには、「 dotnet run 」と入力し、Enter キーを押します。
コードを実行すると、次の出力が表示されます。
Discount: 100
条件演算子をインラインで使用する
一時変数 discount を排除することで、このコードをさらにコンパクトにすることができます。
Visual Studio Code エディターで次のようにコードを更新します。
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");[Visual Studio Code ファイル ] メニューの [ 保存] を選択します。
ターミナル コマンド プロンプトで、コードを実行するには、「 dotnet run 」と入力し、Enter キーを押します。
出力が同じであることに注目してください。
少し時間を取って、更新された
Console.WriteLine()ステートメントを確認します。条件演算子ステートメント全体をかっこで囲む必要があることに注目してください。 かっこがあれば、条件 (saleAmount > 1000) の評価結果ではなく、条件付き結果を表示するという意図をランタイムが確実に理解するようになります。
注
この特定の例はコンパクトで、何が可能かを示していますが、もう少し読みにくくなります。 特にコードの全体的な読みやすさに悪影響を及ぼす場合、コード行を組み合わせることが常に推奨されるとは限りません。 多くの場合、これは主観的な判断です。
まとめ
条件演算子については、次の事実に注意してください。
- 条件演算子を使用してコードのサイズを小さくできますが、結果のコードが読みやすいことを確かめる必要があります。
- バイナリ条件に基づく値を返す必要がある場合は、条件演算子を使用できます。 条件が true に評価されると、コードによって最初のオプションが返され、条件が false に評価されると 2 番目のオプションが返されます。