在本文中,我们将学习有关 C# 编程语言中不同类型的运算符以及如何使用它们的所有知识。
运算符是用于对操作数执行运算的符号。 操作数可以是变量和/或常量。
例如,在2+3中的中,+是用于执行加法运算的运算符,而2和3是操作数。
运算符用于在程序中操纵变量和值。 C# 支持许多运算符,这些运算符根据它们执行的操作类型进行分类。
1.基本赋值运算符
基本赋值运算符(=)用于为变量赋值。 例如,
double x;x = 50.05;
在此,将 50.05 分配给x。
示例 1:基本分配运算符
using System;namespace Operator{class AssignmentOperator{public static void Main(string[] args){int firstNumber, secondNumber;// Assigning a constant to variablefirstNumber = 10;Console.WriteLine("First Number = {0}", firstNumber);// Assigning a variable to another variablesecondNumber = firstNumber;Console.WriteLine("Second Number = {0}", secondNumber);}}}
当我们运行程序时,输出将是:
First Number = 10Second Number = 10
这是一个简单的示例,演示了赋值运算符的用法。
您可能已经注意到在示例中使用了大括号{ }。 我们将以字符串格式化讨论它们。 现在,请记住,{0}被字符串后面的第一个变量替换,{1}被第二个变量替换,依此类推。
2.算术运算符
算术运算符用于执行算术运算,例如加法,减法,乘法,除法等。
例如,
int x = 5;int y = 10;int z = x + y;// z = 15
C# 算术运算符
| 运算符 | 运算符名称 | 示例 |
|---|---|---|
+ |
加法运算符 | 6 + 3等于 9 |
- |
减法运算符 | 10 - 6等于 4 |
* |
乘法运算符 | 4 * 2等于 8 |
/ |
除法运算符 | 10 / 5等于 2 |
% |
模运算符(余数) | 16 % 3等于 1 |
示例 2:算术运算符
using System;namespace Operator{class ArithmeticOperator{public static void Main(string[] args){double firstNumber = 14.40, secondNumber = 4.60, result;int num1 = 26, num2 = 4, rem;// Addition operatorresult = firstNumber + secondNumber;Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);// Subtraction operatorresult = firstNumber - secondNumber;Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result);// Multiplication operatorresult = firstNumber * secondNumber;Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result);// Division operatorresult = firstNumber / secondNumber;Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);// Modulo operatorrem = num1 % num2;Console.WriteLine("{0} % {1} = {2}", num1, num2, rem);}}}
当我们运行程序时,输出将是:
14.4 + 4.6 = 1914.4 - 4.6 = 9.814.4 * 4.6 = 66.2414.4 / 4.6 = 3.130434782608726 % 4 = 2
在上面的示例中执行算术运算。 变量可以用语句中的常量替换。 例如,
result = 4.5 + 2.7 ; // result will hold 7.2result = firstNumber - 3.2; // result will hold 11.2
3.关系运算符
关系运算符用于检查两个操作数之间的关系。 如果该关系为真,则结果为true,否则结果为false。
关系运算符用于决策和循环。
C# 关系运算符
| 运算符 | 运算符名称 | 示例 |
|---|---|---|
== |
等于 | 6 == 4计算为false |
> |
大于 | 3 > -1计算为true |
< |
小于 | 5 < 3计算为false |
>= |
大于或等于 | 4 >= 4计算为true |
<= |
小于或等于 | 5 <= 3计算为false |
!= |
不等于 | 10 != 2计算为true |
示例 3:关系运算符
using System;namespace Operator{class RelationalOperator{public static void Main(string[] args){bool result;int firstNumber = 10, secondNumber = 20;result = (firstNumber==secondNumber);Console.WriteLine("{0} == {1} returns {2}",firstNumber, secondNumber, result);result = (firstNumber > secondNumber);Console.WriteLine("{0} > {1} returns {2}",firstNumber, secondNumber, result);result = (firstNumber < secondNumber);Console.WriteLine("{0} < {1} returns {2}",firstNumber, secondNumber, result);result = (firstNumber >= secondNumber);Console.WriteLine("{0} >= {1} returns {2}",firstNumber, secondNumber, result);result = (firstNumber <= secondNumber);Console.WriteLine("{0} <= {1} returns {2}",firstNumber, secondNumber, result);result = (firstNumber != secondNumber);Console.WriteLine("{0} != {1} returns {2}",firstNumber, secondNumber, result);}}}
当我们运行程序时,输出将是:
10 == 20 returns False10 > 20 returns False10 < 20 returns True10 >= 20 returns False10 <= 20 returns True10 != 20 returns True
4.逻辑运算符
逻辑运算符用于执行诸如and,or之类的逻辑运算。 逻辑运算符对布尔表达式(true和false)进行操作,并返回布尔值。 逻辑运算符用于决策和循环。
这是如何为逻辑AND和OR运算符求值结果的方法。
C# 逻辑运算符
| 操作数 1 | 操作数 2 | 或(` | `) | 且(&&) |
|
|---|---|---|---|---|---|
true |
true |
true |
true |
||
true |
false |
true |
false |
||
false |
true |
true |
false |
||
false |
false |
false |
false |
简单来说,该表可以总结为:
- 如果操作数之一为
true,则OR运算符会将其求值为true。 - 如果操作数之一为
false,则AND运算符会将其求值为false。
示例 4:逻辑运算符
using System;namespace Operator{class LogicalOperator{public static void Main(string[] args){bool result;int firstNumber = 10, secondNumber = 20;// OR operatorresult = (firstNumber == secondNumber) || (firstNumber > 5);Console.WriteLine(result);// AND operatorresult = (firstNumber == secondNumber) && (firstNumber > 5);Console.WriteLine(result);}}}
当我们运行程序时,输出将是:
TrueFalse
5.一元运算符
与其他运算符不同,一元运算符对单个操作数进行运算。
C# 一元运算符
| 运算符 | 运算符名称 | 描述 |
|---|---|---|
+ |
一元加 | 保留操作数的原样 |
- |
一元减 | 反转操作数的符号 |
++ |
递增 | 值增加 1 |
-- |
递减 | 递减值 1 |
! |
逻辑否定(非) | 反转布尔值 |
示例 5:一元运算符
using System;namespace Operator{class UnaryOperator{public static void Main(string[] args){int number = 10, result;bool flag = true;result = +number;Console.WriteLine("+number = " + result);result = -number;Console.WriteLine("-number = " + result);result = ++number;Console.WriteLine("++number = " + result);result = --number;Console.WriteLine("--number = " + result);Console.WriteLine("!flag = " + (!flag));}}}
当我们运行程序时,输出将是:
+number = 10-number = -10++number = 11--number = 10!flag = False
递增(++)和递减(--)运算符可用作前缀和后缀。 如果用作前缀,则变量的值更改将在同一行上显示;如果用作后缀,则变量的值更改将在下一行上显示。 通过下面的示例将很清楚。
示例 6:C# 中的后置和前置递增运算符
using System;namespace Operator{class UnaryOperator{public static void Main(string[] args){int number = 10;Console.WriteLine((number++));Console.WriteLine((number));Console.WriteLine((++number));Console.WriteLine((number));}}}
当我们运行程序时,输出将是:
10111212
我们可以看到使用++作为前缀和后缀的效果。 当在操作数之后使用++时,首先求值该值,然后将其增加1。 因此,声明
Console.WriteLine((number++));
打印10而不是11。 值打印后,数字值增加1。
当++用作前缀时,该过程相反。 该值在打印前增加。 因此,声明
Console.WriteLine((++number));
打印12。
减量运算符(--)的情况相同。
6.三元运算符
三元运算符? :对三个操作数进行运算。 它是if-then-else语句的简写。 三元运算符可以按如下方式使用:
variable = Condition? Expression1 : Expression2;
三元运算符的工作方式如下:
- 如果条件表示的表达式为
true,则将Expression1的结果分配给变量。 - 如果为
false,则将Expression2的结果分配给变量。
示例 7:三元运算符
using System;namespace Operator{class TernaryOperator{public static void Main(string[] args){int number = 10;string result;result = (number % 2 == 0)? "Even Number" : "Odd Number";Console.WriteLine("{0} is {1}", number, result);}}}
当我们运行程序时,输出将是:
10 is Even Number
要了解更多信息,请访问 C# 三元运算符。
7.按位和移位运算符
按位和移位运算符用于执行位操作。
C# 按位和移位操作
| 运算符 | 运算符名称 | |
|---|---|---|
~ |
按位补码 | |
& |
按位与 | |
| ` | ` | 按位或 |
^ |
按位异或 | |
<< |
按位左移 | |
>> |
按位右移 |
例 8:按位和移位操作
using System;namespace Operator{class BitOperator{public static void Main(string[] args){int firstNumber = 10;int secondNumber = 20;int result;result = ~firstNumber;Console.WriteLine("~{0} = {1}", firstNumber, result);result = firstNumber & secondNumber;Console.WriteLine("{0} & {1} = {2}", firstNumber,secondNumber, result);result = firstNumber | secondNumber;Console.WriteLine("{0} | {1} = {2}", firstNumber,secondNumber, result);result = firstNumber ^ secondNumber;Console.WriteLine("{0} ^ {1} = {2}", firstNumber,secondNumber, result);result = firstNumber << 2;Console.WriteLine("{0} << 2 = {1}", firstNumber, result);result = firstNumber >> 2;Console.WriteLine("{0} >> 2 = {1}", firstNumber, result);}}}
当我们运行程序时,输出将是:
~10 = -1110 & 20 = 010 | 20 = 3010 ^ 20 = 3010 << 2 = 4010 >> 2 = 2
要了解更多信息,请访问 C# 按位和位移位运算符。
8.复合赋值运算符
C# 复合赋值运算符
| 运算符 | 运算符名称 | 示例 | 相当于 | |
|---|---|---|---|---|
+= |
加法赋值 | x += 5 |
x = x + 5 |
|
-= |
减法赋值 | x -= 5 |
x = x - 5 |
|
*= |
乘法赋值 | x *= 5 |
x = x * 5 |
|
/= |
除法赋值 | x /= 5 |
x = x / 5 |
|
%= |
模赋值 | x %= 5 |
x = x % 5 |
|
&= |
按位与赋值 | x &= 5 |
x = x & 5 |
|
| ` | =` | 按位或赋值 | x |= 5 |
x = x | 5 |
^= |
按位异或赋值 | x ^= 5 |
x = x ^ 5 |
|
<<= |
左移赋值 | x <<= 5 |
x = x << 5 |
|
>>= |
右移赋值 | x >>= 5 |
x = x >> 5 |
|
=> |
Lambda 运算符 | x => x*x |
Returns x*x |
示例 9:复合赋值运算符
using System;namespace Operator{class BitOperator{public static void Main(string[] args){int number = 10;number += 5;Console.WriteLine(number);number -= 3;Console.WriteLine(number);number *= 2;Console.WriteLine(number);number /= 3;Console.WriteLine(number);number %= 3;Console.WriteLine(number);number &= 10;Console.WriteLine(number);number |= 14;Console.WriteLine(number);number ^= 12;Console.WriteLine(number);number <<= 2;Console.WriteLine(number);number >>= 3;Console.WriteLine(number);}}}
当我们运行程序时,输出将是:
15122482214281
我们将在后面的教程中讨论 Lambda 运算符。
