C#教程5:操作算子(1)
一、C# 操作
????????表達式由操作數和運算符構成。表達式的運算符指示將哪些操作應用于操作數。表達式中運算符的求值順序由運算符的優先級和關聯性決定
????????操作符是一個特殊符號,表示執行了某個過程。編程語言中的運算符取自數學。程序員處理數據。運算符用于處理數據。操作數是運算符的輸入(參數)之一。
二、C# 操作列表
下表顯示了 C# 語言中使用的一組運算符。
| Sign operators | + - |
| Arithmetic | + - * / % |
| Logical (boolean and bitwise) | & | ^ ! ~ && || true false |
| String concatenation | + |
| Increment, decrement | ++ -- |
| Shift | << >> |
| Relational | == != < > <= >= |
| Assignment | = += -= *= /= %= &= |= ^= ??= <<= >>= |
| Member access | . ?. |
| Indexing | [] ?[] |
| Cast | |
| Ternary | ?: |
| Delegate concatenation and removal | + - |
| Object creation | new |
| Type information | as is sizeof typeof |
| Overflow exception control | checked unchecked |
| Indirection and address | * -> [] & |
| Lambda | => |
????????一個運算符通常有一個或兩個操作數。那些只使用一個操作數的運算符稱為一元運算符。使用兩個操作數的那些稱為二元運算符。還有一個三元運算符?:,它與三個操作數一起使用。
????????某些運算符可能會在不同的上下文中使用。例如 + 運算符。從上表我們可以看出它在不同的情況下使用。它添加數字、連接字符串或委托;表示數字的符號。我們說運算符超載。
三 C#?一元運算符
C# 一元運算符包括:+、-、++、-、強制轉換運算符 () 和否定!。
3.1 C# 符號操作
有兩個符號運算符:+ 和 -。它們用于指示或更改值的符號。
Program.cs
Console.WriteLine(2); Console.WriteLine(+2); Console.WriteLine(-2);????????+ 和 - 符號表示值的符號。加號可以用來表示我們有一個正數。它可以省略,而且大部分都是這樣做的。
Program.cs
int a = 1; Console.WriteLine(-a); Console.WriteLine(-(-a));減號更改值的符號。
$ dotnet run -1 13.2 C# 增和減操作
將值遞增或遞減 1 是編程中的常見任務。 C# 有兩個方便的運算符:++ 和 --。
x++; x = x + 1; ... y--; y = y - 1;上述兩對表達式的作用相同。
Program.cs
int x = 6;x++; x++;Console.WriteLine(x);x--; Console.WriteLine(x);在上面的示例中,我們演示了這兩個運算符的用法。
int x = 6;x++; x++;我們將 x 變量初始化為 6。然后我們將 x 增加兩次。現在變量等于 8。
x--;我們使用遞減運算符。現在變量等于 7。
$ dotnet run 8 73.3 C#?顯式轉換運算符
顯式轉換運算符 () 可用于將類型轉換為另一種類型。請注意,此運算符僅適用于某些類型。
Program.cs
float val = 3.2f; int num = (int) val;Console.WriteLine(num);在示例中,我們將浮點類型顯式轉換為 int。
3.4?否定運算符
否定運算符 (!) 反轉其操作數的含義。
Program.cs
var isValid = false;if (!isValid) {Console.WriteLine("The option is not valid"); }在示例中,我們構建了一個否定條件:如果表達式的逆表達式有效,則執行該條件。
四、C#?賦值運算符
賦值運算符 = 為變量賦值。變量是值的占位符。在數學中,= 運算符具有不同的含義。在等式中,= 運算符是等式運算符。等式的左邊等于右邊。
int x = 1;在這里,我們為 x 變量分配了一個數字。
x = x + 1;前面的表達式在數學中沒有意義。但在編程中是合法的。該表達式將 1 添加到 x 變量。右側等于 2,并且 2 分配給 x。
3 = x;此代碼示例導致語法錯誤。我們不能為文字賦值。
五、C#?連接字符串
+ 運算符也用于連接字符串。
Program.cs
Console.WriteLine("Return " + "of " + "the king.");我們使用字符串連接運算符將三個字符串連接在一起。
$ dotnet run Return of the king.六、C#?算術運算符
以下是 C# 中的算術運算符表。
| + | Addition |
| - | Subtraction |
| * | Multiplication |
| / | Division |
| % | Remainder |
以下示例顯示算術運算。
Project.cs
int a = 10; int b = 11; int c = 12;int add = a + b + c; int sb = c - a; int mult = a * b; int div = c / 3; int rem = c % a;Console.WriteLine(add); Console.WriteLine(sb); Console.WriteLine(mult); Console.WriteLine(div); Console.WriteLine(rem);在前面的示例中,我們使用了加法、減法、乘法、除法和余數運算。這在數學上都很熟悉。
int rem = c % a;% 運算符稱為余數或模運算符。它找到一個數字除以另一個數字的余數。例如,9 % 4, 9 模 4 為 1,因為 4 進入 9 兩次,余數為 1。
$ dotnet run 33 2 110 4 2接下來我們展示整數除法和浮點除法之間的區別。
Program.cs
int c = 5 / 2; Console.WriteLine(c);double d = 5 / 2.0; Console.WriteLine(d);在前面的示例中,我們將兩個數字相除。
int c = 5 / 2; Console.WriteLine(c);在這段代碼中,我們完成了整數除法。除法運算的返回值是一個整數。當我們將兩個整數相除時,結果是一個整數。
double d = 5 / 2.0; Console.WriteLine(d);如果其中一個值是雙精度或浮點數,我們執行浮點除法。在我們的例子中,第二個操作數是一個雙精度數,所以結果是一個雙精度數。
$ dotnet run 2 2.5七、 C# 布爾操作
在 C# 中,我們有三個邏輯運算符。 bool 關鍵字用于聲明布爾值。
| && | logical and |
| || | logical or |
| ! | negation |
布爾運算符也稱為邏輯運算符。
Program.cs
int x = 3; int y = 8;Console.WriteLine(x == y); Console.WriteLine(y > x);if (y > x) {Console.WriteLine("y is greater than x"); }許多表達式產生一個布爾值。布爾值用于條件語句。
Console.WriteLine(x == y); Console.WriteLine(y > x);關系運算符總是產生一個布爾值。這兩行打印 false 和 true。
if (y > x) {Console.WriteLine("y is greater than x"); }僅當滿足括號內的條件時,才會執行 if 語句的主體。 y > x 返回 true,因此將消息“y 大于 x”打印到終端。
true 和 false 關鍵字表示 C# 中的布爾文字。
Program.cs
bool a = true && true; bool b = true && false; bool c = false && true; bool d = false && false;Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d);示例顯示了邏輯和運算符。只有當兩個操作數都為真時,它才會計算為真。
$ dotnet run True False False False只有一個表達式的結果為 True。
邏輯或 ||如果任一操作數為真,則運算符的計算結果為真。
Program.cs
bool a = true || true; bool b = true || false; bool c = false || true; bool d = false || false;Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d);如果運算符的一側為真,則運算結果為真。
$ dotnet run True True True False四個表達式中的三個結果為真。
否定運算符!使真為假,使假為真。
Program.cs
Console.WriteLine(!true); Console.WriteLine(!false); Console.WriteLine(!(4 < 3));該示例顯示了否定運算符的作用。
$ dotnet run False True True|| 和 && 運算符進行短路評估。短路求值是指僅在第一個參數不足以確定表達式的值時才對第二個參數進行求值:當第一個參數的邏輯和求值為假時,整體值必須為假;并且當邏輯或的第一個參數評估為真時,整體值必須為真。短路評估主要用于提高性能。
一個例子可以更清楚地說明這一點。
Program.cs
Console.WriteLine("Short circuit");if (One() && Two()) {Console.WriteLine("Pass"); }Console.WriteLine("#############");if (Two() || One()) {Console.WriteLine("Pass"); }bool One() {Console.WriteLine("Inside one");return false; }bool Two() {Console.WriteLine("Inside two");return true; }我們在示例中有兩種方法。它們用作布爾表達式中的操作數。
if (One() && Two()) {Console.WriteLine("Pass"); }One 方法返回 false。短路 && 不評估第二種方法。沒有必要。一旦操作數為假,邏輯結論的結果始終為假。只有“Inside one”只打印到控制臺
.
Console.WriteLine("#############");if (Two() || One()) {Console.WriteLine("Pass"); }在第二種情況下,我們使用 ||運算符并使用 Two 方法作為第一個操作數。在這種情況下,“Inside two”和“Pass”字符串被打印到終端。再次沒有必要評估第二個操作數,因為一旦第一個操作數評估為真,邏輯或始終為真。
$ dotnet run Short circuit Inside one ############# Inside two Pass八、C# 不等關系
關系運算符用于比較值。這些運算符總是產生布爾值。
| < | less than |
| <= | less than or equal to |
| > | greater than |
| >= | greater than or equal to |
| == | equal to |
| != | not equal to |
關系運算符也稱為比較運算符。
Program.cs
Console.WriteLine(3 < 4); Console.WriteLine(3 == 4); Console.WriteLine(4 >= 3); Console.WriteLine(4 != 3);在代碼示例中,我們有四個表達式。這些表達式比較整數值。每個表達式的結果要么為真,要么為假。在 C# 中,我們使用 == 來比較數字。某些語言(如 Ada、Visual Basic 或 Pascal)使用 = 來比較數字。
九 C#二元運算
十進制數對人類來說是很自然的。二進制數是計算機固有的。二進制、八進制、十進制或十六進制符號只是相同數字的符號。位運算符使用二進制數的位。位運算符很少在 C# 等高級語言中使用。
| ~ | bitwise negation |
| ^ | bitwise exclusive or |
| & | bitwise and |
| | | bitwise or |
按位取反運算符將每個 1 更改為 0 并將 0 更改為 1。
Console.WriteLine(~ 7); // prints -8 Console.WriteLine(~ -8); // prints 7運算符將數字 7 的所有位還原。其中一位還確定該數字是否為負數。如果我們再一次否定所有位,我們再次得到數字 7。
按位和運算符在兩個數字之間執行逐位比較。僅當操作數中的兩個對應位均為 1 時,位位置的結果才為 1。
00110& 00011= 00010第一個數字是二進制的 6,第二個是 3,結果是 2。
Console.WriteLine(6 & 3); // prints 2 Console.WriteLine(3 & 6); // prints 2按位或運算符在兩個數字之間執行逐位比較。如果操作數中的任一對應位為 1,則位位置的結果為 1。
00110| 00011= 00111The result is?00110?or decimal 7.
Console.WriteLine(6 | 3); // prints 7 Console.WriteLine(3 | 6); // prints 7按位異或運算符在兩個數字之間執行逐位比較。如果操作數中相應位的一個或另一個(但不是兩個)為 1,則位位置的結果為 1。
00110^ 00011= 00101The result is?00101?or decimal 5.
Console.WriteLine(6 ^ 3); // prints 5 Console.WriteLine(3 ^ 6); // prints 5總結
以上是生活随笔為你收集整理的C#教程5:操作算子(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#教程4:数据类型
- 下一篇: QT5实践:如何应用窗口菜单