概述
前面几节,我们已经学习过C#语言中几种运算符的知识。在C#语言中,运算符又有不同的优先级,它是用来描述计算机进行表达式运算时执行运算的先后顺序。先执行具有较高优先级的运算,然后执行较低优先级的运算。例如,乘除运算符具有比加减运算符更高的优先级。
比如计算:x = 7 + 3 * 2这个运算表达式。在这里,x 被赋值为 13,而不是 20,因为乘运算符(*)具有比加运算符(+)更高的优先级,所以先计算乘法3*2,然后再加上 7。
下表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。
| 类别 | 运算符 | 结合性 |
|---|---|---|
| 后缀 | () [] -> . ++ - - | 从左到右 |
| 一元 | + - ! ~ ++ - - (type)* & sizeof | 从右到左 |
| 乘除 | * / % | 从左到右 |
| 加减 | + - | 从左到右 |
| 移位 | << >> | 从左到右 |
| 关系 | < <= > >= | 从左到右 |
| 相等 | == != | 从左到右 |
| 位与 AND | & | 从左到右 |
| 位异或 XOR | ^ | 从左到右 |
| 位或 OR | | | 从左到右 |
| 逻辑与 AND | && | 从左到右 |
| 逻辑或 OR | || | 从左到右 |
| 条件 | ?: | 从右到左 |
| 赋值 | = += -= *= /= %=>>= <<= &= ^= |= | 从右到左 |
| 逗号 | , | 从左到右 |
以下是一个C#语言中运算符优先级的代码示例程序:
using System;
namespace ConsoleApp1
{
internal static class Program
{
private static void Main(string[] args)
{
int x = 20, y = 5, z = 4;
int result = x / y + z;
Console.WriteLine("Result1: " + result);
bool result2 = z <= y + x;
Console.WriteLine("Result2: " + result2);
x += 6;
int result3 = (x + y) * (x - z);
Console.WriteLine("Result3: " + result3);
int result4 = (x / (y + z)) * z;
Console.WriteLine("Result4: " + result4);
Console.ReadLine();
}
}
}
输入结果为:
发表评论
登录用户才能发表评论, 请 登 录 或者 注册