C# 中的條件運算子顧名思義是指在 C# 程式中使用三個運算元。用於表示條件的操作數,條件為真時的值和條件為假時的值。 C# 中用來表示條件運算子的符號是‘? : ' (引號將被忽略,因為它們不是符號的一部分,用於區分符號)。
文法:
condition_expression ? first_expression : second_expression;
第一個操作數在?之前指定並包含評估條件表達式的定義。定義表達式時需要小心,以便求值條件應始終產生布林結果。指定布林表達式或指定錯誤表達式不會導致編譯錯誤。第二個表達式在: 符號之前指定,並儲存定義或賦值,以防第一個表達式中定義的條件計算結果為 true。因此,如果第一個表達式中確定的回傳值為 true,則計算第二個運算元。
定義中的第三個運算元包含表達式的定義,以防第一個運算元的條件結果計算為 false。或者,條件運算子也稱為三元運算子或內聯 if 運算子。 C# 中條件運算子的主要用途是作為 if-else 迴圈的替代方案,用於減少程式碼區塊的大小。條件運算子的另一個主要優點是,它將編譯流程轉換為分支語句,從而減少了所需的嵌套 if 語句的使用。
條件運算子遵循右關聯原則,即運算從右到左分組。此外,由於條件運算子僅計算單一操作數值表達式,因此編譯時間大大減少。第二個和第三個運算元的值僅限於賦值、遞增和遞減函數。
讓我們試著了解使用條件運算子進行傳統 C# 程式設計的方法。
讓我們先嘗試一個常規的 if else 語句:-
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x = 10, y = 25; string result1; if (x > y) { result1 = "value of x is greater than y"; } else { result1 = "value of x is less than y"; } Console.WriteLine(result1); Console.ReadLine(); } } }
輸出:
上面的程式示範了一個簡單的if-else 語句,該語句比較兩個變數x 和y 的值,並根據分配給它們的值列印結果,並且在評估條件時,x> > y.
讓我們試著使用條件運算子 → 複製上面的程式。
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x = 10, y = 25; string result1; //using the Ternary Operator (?:) for the comparison of x and y variable result1 = (x > y) ? "value of x is greater than y" : "value of x is less than y"; Console.WriteLine(result1); Console.ReadLine(); } } }
輸出:
現在我們將確定條件運算子的主要用途,它透過提供自己的分支或嵌套條件來簡化複雜的if-else if 嵌套,與if-else 相比,它的複雜性要低得多if 循環。
為了理解這一點,讓我們先考慮一個常規的 if-else if 程式:-
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string comparisonResult; int a = 25, b = 50; if (a < b) { comparisonResult = "value of a is less than b "; } else if (a > b) { comparisonResult = " value of a is more than b"; } else { comparisonResult = "a and b are both equal in value "; } Console.WriteLine(comparisonResult); Console.ReadLine(); } } }
輸出:
現在我們將了解如何使用條件運算子在 C# 中實現相同的邏輯。
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string comparisonResult; int a = 25, b = 50; //Nested Ternary Operator (?:) comparisonResult = (a < b) ? "value of a is less than b" : (a > b) ? "value of a is more than b" : "a and b are both equal in value"; Console.WriteLine(comparisonResult); Console.ReadLine(); } } }
輸出:
因此,我們看到兩者之間的差異,因為使用巢狀條件運算子大大降低了 if-else if 語句的複雜性。也了解了程式的流程,我們發現遊標流程是正確的關聯原則
(a < b) ? "value of a is less than b" : (a > b) ? "value of a is more than b" : "a and b are both equal in value";
對於像 A? 這樣的語句,程式碼區塊使用單獨的顏色表示。乙:丙? D : E 的計算結果與 (A ? B : C) 相同? D : E.
條件運算子是用來求值和賦值運算的三個運算元運算符,對條件運算元的求值值(即 true 或 false)進行單獨的賦值。條件運算子遵循右關聯原則,即運算從右向左分組。條件運算子不能使用任何使用者定義類型進行重載,並且僅限於 bool 值進行計算。條件運算子為冗長的 if-else if 語句提供了最合適的替代,並且還透過提供分支語句評估的機會來減少編譯時間。
以上是C# 中的條件運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!