C#运算符——C#运算符全面指南
C#运算符
探索C#每类运算符,学习如何在代码中高效应用。
运算符是对一个或多个操作数——变量、常量、表达式——执行操作的符号。C#按操作类型分组运算符,如算术、逻辑、位运算等。
1. 基本赋值运算符
赋值运算符(=)将值存入变量。
double x; x = 50.05;
示例1:使用赋值运算符
using System;
namespace OperatorDemo
{
class AssignmentOperator
{
public static void Main(string[] args)
{
int firstNumber, secondNumber;
firstNumber = 10;
Console.WriteLine("First Number = {0}", firstNumber);
secondNumber = firstNumber;
Console.WriteLine("Second Number = {0}", secondNumber);
}
}
}
输出:
First Number = 10 Second Number = 10
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 OperatorDemo
{
class ArithmeticOperator
{
public static void Main(string[] args)
{
double firstNumber = 14.40, secondNumber = 4.60, result;
int num1 = 26, num2 = 4, rem;
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 / secondNumber;
Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);
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
3. 关系运算符
比较两个操作数并返回布尔结果。
| 运算符 | 名称 | 示例 |
|---|---|---|
| == | 等于 | 6 == 4 → false |
| > | 大于 | 3 > -1 → true |
| < | 小于 | 5 < 3 → false |
| >= | 大于等于 | 4 >= 4 → true |
| <= | 小于等于 | 5 <= 3 → false |
| != | 不等于 | 10 != 2 → true |
示例3:关系检查
using System;
namespace OperatorDemo
{
class RelationalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
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 >= 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);
}
}
}
输出:
10 == 20 返回 False 10 > 20 返回 False 10 < 20 返回 True 10 >= 20 返回 False 10 <= 20 返回 True 10 != 20 返回 True
4. 逻辑运算符
逻辑运算符评估布尔表达式。
| 操作数1 | 操作数2 | OR (||) | AND (&&) |
|---|---|---|---|
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
- 任一操作数为
true,OR运算符产出true。 - 两操作数均为
true,AND才返回true。
示例4:逻辑运算符
using System;
namespace OperatorDemo
{
class LogicalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
result = (firstNumber == secondNumber) || (firstNumber > 5);
Console.WriteLine(result);
result = (firstNumber == secondNumber) && (firstNumber > 5);
Console.WriteLine(result);
}
}
}
输出:
True False
5. 一元运算符
一元运算符作用于单个操作数。
| 运算符 | 名称 | 描述 |
|---|---|---|
| + | 一元加 | 符号不变 |
| - | 一元减 | 取反符号 |
| ++ | 自增 | 加1 |
| -- | 自减 | 减1 |
| ! | 逻辑非 | 反转布尔值 |
示例5:一元运算符
using System;
namespace OperatorDemo
{
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:前缀与后缀自增
using System;
namespace OperatorDemo
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10;
Console.WriteLine(number++); // 10
Console.WriteLine(number); // 11
Console.WriteLine(++number); // 12
Console.WriteLine(number); // 12
}
}
}
输出:
10 11 12 12
6. 三元运算符
三元运算符(? :)将if-else语句压缩为单行。
variable = Condition ? Expression1 : Expression2;
Condition为true时求Expression1;否则用Expression2。
示例7:使用三元运算符
using System;
namespace OperatorDemo
{
class TernaryOperator
{
public static void Main(string[] args)
{
int number = 10;
string 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 OperatorDemo
{
class BitOperator
{
public static void Main(string[] args)
{
int firstNumber = 10, secondNumber = 20, 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 | 返回x平方 |
示例9:复合赋值用法
using System;
namespace OperatorDemo
{
class CompoundOperator
{
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语言
- C 语言运算符完全指南:算术、关系、逻辑、位运算等
- C++ 运算符全解析:类型、示例与示例程序
- C++ 运算符重载实战指南:语法、方法、限制与代码示例
- C 语言运算符大全:算术、关系、逻辑、位运算、赋值与优先级详解
- C++运算符大全:算术/关系/逻辑/位/赋值/杂项与优先级结合性
- Verilog 运算符:综合必备的算术与控制运算符
- MATLAB 基础语法速成:交互计算、变量、运算符、格式控制与注释
- 精通Python运算符:全面指南
- 精通 Python 运算符重载:实战指南
- 精通 Java 运算符:类型、语法与实战示例
- Java instanceof 运算符完全指南:用法、继承与接口检查
- Java 核心运算符全面指南