C# 运算符
C# 运算符
在本文中,我们将全面了解 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 variable
firstNumber = 10;
Console.WriteLine("First Number = {0}", firstNumber);
// Assigning a variable to another variable
secondNumber = firstNumber;
Console.WriteLine("Second Number = {0}", secondNumber);
}
}
}
当我们运行程序时,输出将是:
First Number = 10 Second Number = 10
这是一个简单的例子,演示了赋值运算符的使用。
您可能已经注意到大括号 { }
的使用 在示例中。我们将在字符串格式中讨论它们 .现在,请记住 {0}
替换为字符串后面的第一个变量,{1}
被第二个变量替换,依此类推。
2。算术运算符
算术运算符用于执行算术运算,例如加减乘除等。
例如,
int x = 5; int y = 10; int z = x + y;// z = 15
运算符 | 运营商名称 | 示例 |
---|---|---|
+ | 加法运算符 | 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 operator
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
// Subtraction operator
result = firstNumber - secondNumber;
Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result);
// Multiplication operator
result = firstNumber * secondNumber;
Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result);
// Division operator
result = firstNumber / secondNumber;
Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);
// Modulo operator
rem = num1 % num2;
Console.WriteLine("{0} % {1} = {2}", num1, num2, rem);
}
}
}
当我们运行程序时,输出将是:
14.4 + 4.6 = 19 14.4 - 4.6 = 9.8 14.4 * 4.6 = 66.24 14.4 / 4.6 = 3.1304347826087 26 % 4 = 2
在上面的例子中进行了算术运算。变量可以被语句中的常量替换。例如,
result = 4.5 + 2.7 ; // result will hold 7.2 result = firstNumber - 3.2; // result will hold 11.2
3。关系运算符
关系运算符用于检查两个操作数之间的关系。如果关系为真,则结果将是 true
, 否则会导致 false
.
关系运算符用于决策和循环。
运算符 | 运营商名称 | 示例 |
---|---|---|
== | 等于 | 6 ==4 计算结果为假 |
> | 大于 | 3> -1 计算结果为真 |
< | 小于 | 5 <3 计算结果为假 |
>= | 大于等于 | 4>=4 计算结果为真 |
<= | 小于或等于 | 5 <=3 计算结果为假 |
!= | 不等于 | 10 !=2 计算结果为真 |
示例 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 False 10 > 20 returns False 10 < 20 returns True 10 >= 20 returns False 10 <= 20 returns True 10 != 20 returns True
4。逻辑运算符
逻辑运算符用于执行and
等逻辑运算 , or
.逻辑运算符对布尔表达式(true
和 false
) 并返回布尔值。逻辑运算符用于决策和循环。
以下是逻辑 AND
的结果评估方式 和 OR
运营商。
操作数 1 | 操作数 2 | OR (||) | AND (&&) |
---|---|---|---|
真 | 是的 | 是的 | 是的 |
是的 | 假 | 是的 | 假 |
假 | 是的 | 是的 | 假 |
假 | 假 | 假 | 假 |
简单来说,这张表可以概括为:
- 如果其中一个操作数为真,则
OR
运算符会将其评估为true
. - 如果其中一个操作数为假,
AND
运算符会将其评估为false
.
示例 4:逻辑运算符
using System;
namespace Operator
{
class LogicalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
// OR operator
result = (firstNumber == secondNumber) || (firstNumber > 5);
Console.WriteLine(result);
// AND operator
result = (firstNumber == secondNumber) && (firstNumber > 5);
Console.WriteLine(result);
}
}
}
当我们运行程序时,输出将是:
True False
5。一元运算符
与其他运算符不同,一元运算符对单个操作数进行运算。
运算符 | 运营商名称 | 描述 |
---|---|---|
+ | 一元加号 | 保持操作数的符号不变 |
- | 一元减法 | 反转操作数的符号 |
++ | 增量 | 将值增加 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# 中的 Post 和 Pre Increment 运算符
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));
}
}
}
当我们运行程序时,输出将是:
10 11 12 12
我们可以看到使用++
的效果 作为前缀和后缀。当 ++
在操作数之后使用,首先计算该值,然后将其递增 1
.因此声明
Console.WriteLine((number++));
打印 10
而不是 11
.打印完值后,number 的值增加 1
.
++
时过程相反 用作前缀。该值在打印前递增。因此声明
Console.WriteLine((++number));
打印 12
.
减量运算符 (--)
的情况相同 .
6。三元运算符
三元运算符 ? :
对三个操作数进行操作。它是 if-then-else
的简写 陈述。三元运算符可以使用如下:
variable = Condition? Expression1 : Expression2;
三元运算符的工作原理如下:
- 如果Condition表示的表达式是
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。位和位移运算符
按位和位移运算符用于执行位操作操作。
运算符 | 运营商名称 |
---|---|
~ | 按位补码 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 按位左移 |
>> | 按位右移 |
示例 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 = -11 10 & 20 = 0 10 | 20 = 30 10 ^ 20 = 30 10 << 2 = 40 10 >> 2 = 2
要了解更多信息,请访问 C# 位和位移运算符 .
8。复合赋值运算符
运算符 | 运营商名称 | 示例 | 等价于 |
---|---|---|---|
+= | 加法赋值 | 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);
}
}
}
当我们运行程序时,输出将是:
15 12 24 8 2 2 14 2 8 1
我们将讨论 Lambda 运算符 在后面的教程中。
C语言