練習 - 實作條件運算子

已完成

假設您必須快速判斷客戶的購買是否符合促銷折扣資格。 促銷的詳細資料表示,當購買值大於 $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 美元。

加入使用條件運算子的程式碼

  1. 請確定您已在 Visual Studio Code 中開啟空的 Program.cs 檔案。 如有必要,請開啟 Visual Studio Code,然後完成下列步驟,以在編輯器中備妥 Program.cs 檔案:

    1. 在 [檔案] 功能表上,選取 [開啟資料夾]
    2. 使用 [開啟資料夾] 對話方塊瀏覽至 CsharpProjects 資料夾,然後加以開啟。
    3. 在 Visual Studio Code 的 [總管] 窗格中,選取 [Program.cs]。
    4. 在 Visual Studio Code [選取項目] 功能表上,選取 [全部選取],然後按 [刪除] 鍵。
  2. 在 Visual Studio Code 編輯器中輸入下列程式碼。

    int saleAmount = 1001;
    int discount = saleAmount > 1000 ? 100 : 50;
    Console.WriteLine($"Discount: {discount}");
    
  3. 在 Visual Studio Code 的 [檔案] 功能表上,選取 [儲存]。

    在建置或執行程式碼之前,必須先儲存 Program.cs 檔案。

  4. 在 [總管] 面板中,若要在 TestProject 資料夾位置開啟 [終端],請以滑鼠右鍵按一下 [TestProject],然後選取 [在整合式終端機中開啟]。

    現在應該開啟顯示命令提示字元的終端面板。 命令提示字元應該會顯示 TestProject 資料夾位置的資料夾路徑。

  5. 在終端命令提示字元中,若要執行程式碼,請輸入 dotnet run,然後按 Enter 鍵。

    當執行程式碼時,應該會看見下列輸出:

    Discount: 100
    

以內嵌方式使用條件運算子

您可刪除暫存變數 discount,更進一步壓縮此程式碼。

  1. 在 Visual Studio Code 編輯器更新您的程式碼,如下所示:

    int saleAmount = 1001;
    // int discount = saleAmount > 1000 ? 100 : 50;
    
    Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");
    
  2. 在 Visual Studio Code 的 [檔案] 功能表上,選取 [儲存]。

  3. 在終端命令提示字元中,若要執行程式碼,請輸入 dotnet run,然後按 Enter 鍵。

  4. 請注意,輸出是相同的。

  5. 請花一分鐘的時間檢查更新的 Console.WriteLine() 陳述式。

    請注意,必須將整個條件運算子陳述式包裝在括弧中。 括弧可確保執行階段了解您的意圖,也就是顯示條件式結果,而不是評估條件的結果 (salesAmount > 1000)。

    注意

    雖然此特定範例很精簡並顯示可能的內容,但閱讀會比較困難。 合併程式程式碼不一定是個好主意,特別是在對程式碼的整體可讀性造成負面影響時。 這通常是主觀判斷。

概括回顧

您應記住關於條件運算子的下列事實:

  • 您可以使用條件運算子來減少程式碼的大小,但應確定產生的程式碼很容易讀取。
  • 當您需要傳回以二進位條件為基礎的值時,可以使用條件運算子。 當條件評估為 true 時,程式碼會傳回第一個選項,當條件評估為 false 時,它會傳回第二個選項。

檢定您的知識

1.

下列哪一行程式碼是條件運算子的有效用法?