練習 - 實作條件運算子
假設您必須快速判斷客戶的購買是否符合促銷折扣資格。 促銷的詳細資料表示,當購買值大於 $1000 時,購買符合 $100 折扣的資格。 如果購買金額為 $1000 或更少,則購買符合 $50 折扣的資格。
雖然您當然可以使用 if ... elseif ... else
分支建構來表達此商務規則,但使用條件運算子來評估促銷折扣的資格可能是一個更好的選擇。 條件運算子會使用精簡格式來儲存幾行程式碼,且可能會讓程式碼的意圖更清楚。
什麼是條件運算子?
條件運算子?:
會評估布林運算式,並根據布林運算式評估為 true 或 false,傳回兩個運算式的結果之一。 條件運算子通常稱為三元條件運算子。
基本形式如下:
<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 的 [總管] 窗格中,選取 [Program.cs]。
- 在 Visual Studio Code [選取項目] 功能表上,選取 [全部選取],然後按 [刪除] 鍵。
在 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()
陳述式。請注意,必須將整個條件運算子陳述式包裝在括弧中。 括弧可確保執行階段了解您的意圖,也就是顯示條件式結果,而不是評估條件的結果 (salesAmount > 1000)。
注意
雖然此特定範例很精簡並顯示可能的內容,但閱讀會比較困難。 合併程式程式碼不一定是個好主意,特別是在對程式碼的整體可讀性造成負面影響時。 這通常是主觀判斷。
概括回顧
您應記住關於條件運算子的下列事實:
- 您可以使用條件運算子來減少程式碼的大小,但應確定產生的程式碼很容易讀取。
- 當您需要傳回以二進位條件為基礎的值時,可以使用條件運算子。 當條件評估為 true 時,程式碼會傳回第一個選項,當條件評估為 false 時,它會傳回第二個選項。