C#运算符优先级

1647 更新于: 2021-06-26 读完约需 4 分钟

概述

前面几节,我们已经学习过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();
        }
    }
}

输入结果为:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

发表评论

登录用户才能发表评论, 请 登 录 或者 注册