首頁  >  文章  >  後端開發  >  C# 中的條件運算符

C# 中的條件運算符

王林
王林原創
2024-09-03 15:08:32961瀏覽

C# 中的條件運算子顧名思義是指在 C# 程式中使用三個運算元。用於表示條件的操作數,條件為真時的值和條件為假時的值。 C# 中用來表示條件運算子的符號是‘? : ' (引號將被忽略,因為它們不是符號的一部分,用於區分符號)。

文法:

condition_expression ? first_expression : second_expression;

如何定義條件運算子?

第一個操作數在?之前指定並包含評估條件表達式的定義。定義表達式時需要小心,以便求值條件應始終產生布林結果。指定布林表達式或指定錯誤表達式不會導致編譯錯誤。第二個表達式在: 符號之前指定,並儲存定義或賦值,以防第一個表達式中定義的條件計算結果為 true。因此,如果第一個表達式中確定的回傳值為 true,則計算第二個運算元。

定義中的第三個運算元包含表達式的定義,以防第一個運算元的條件結果計算為 false。或者,條件運算子也稱為三元運算子或內聯 if 運算子。 C# 中條件運算子的主要用途是作為 if-else 迴圈的替代方案,用於減少程式碼區塊的大小。條件運算子的另一個主要優點是,它將編譯流程轉換為分支語句,從而減少了所需的嵌套 if 語句的使用。

條件運算子遵循右關聯原則,即運算從右到左分組。此外,由於條件運算子僅計算單一操作數值表達式,因此編譯時間大大減少。第二個和第三個運算元的值僅限於賦值、遞增和遞減函數。

C# 中條件運算子的範例

讓我們試著了解使用條件運算子進行傳統 C# 程式設計的方法。

範例#1

讓我們先嘗試一個常規的 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();
}
}
}

輸出:

C# 中的條件運算符

上面的程式示範了一個簡單的if-else 語句,該語句比較兩個變數x 和y 的值,並根據分配給它們的值列印結果,並且在評估條件時,x> > y.

範例#2

讓我們試著使用條件運算子 → 複製上面的程式。

代碼:

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();
}
}
}

輸出:

C# 中的條件運算符

現在我們將確定條件運算子的主要用途,它透過提供自己的分支或嵌套條件來簡化複雜的if-else if 嵌套,與if-else 相比,它的複雜性要低得多if 循環。

範例#3

為了理解這一點,讓我們先考慮一個常規的 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# 中的條件運算符

範例#4

現在我們將了解如何使用條件運算子在 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();
}
}
}

輸出:

C# 中的條件運算符

因此,我們看到兩者之間的差異,因為使用巢狀條件運算子大大降低了 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn