0Pricing
C# Academy · 课时

运算符优先级与结合性

了解求值顺序并使用括号。

运算符优先级与结合性 是 CoddyKit 上的免费 C# Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 4 节课。

优先级为何重要

当一个表达式混合使用多个运算符时,C# 会使用优先级来决定执行顺序。优先级较高的运算符绑定得更紧,并会先执行。

using System;

class Program {
    static void Main() {
        Console.WriteLine(2 + 3 * 4);
    }
}

乘法运算先于加法运算

* / % 的优先级高于 + -,因此它们会先执行,就像数学课中一样。

using System;

class Program {
    static void Main() {
        Console.WriteLine(10 - 2 * 3);
        Console.WriteLine(20 / 4 + 1);
    }
}

括号可以覆盖顺序

括号具有最高优先级。请使用括号强制指定所需的顺序,并明确表达意图。

using System;

class Program {
    static void Main() {
        Console.WriteLine((2 + 3) * 4);
        Console.WriteLine(2 + (3 * 4));
    }
}

比较与算术

算术运算会先于比较运算。在 a + b > c 中,会先执行加法,再进行比较。

using System;

class Program {
    static void Main() {
        int a = 3, b = 4, c = 5;
        Console.WriteLine(a + b > c);
    }
}

逻辑运算符顺序

&& 的优先级高于 ||。在 a || b && c 中,会先绑定 AND。

using System;

class Program {
    static void Main() {
        bool r = true || false && false;
        Console.WriteLine(r);
    }
}

优先级概览

大致顺序(从高到低)为:括号、一元运算符(! ~ -)、* / %、+ -、移位、比较、相等性、位运算、&&、||,最后是赋值。

using System;

class Program {
    static void Main() {
        int x = 1 + 2 << 1;
        Console.WriteLine(x);
    }
}

结合性:从左到右

当运算符具有相同的优先级时,由结合性决定计算方向。大多数二元运算符都是从左向右结合的:10 - 4 - 2 等于 (10 - 4) - 2。

using System;

class Program {
    static void Main() {
        Console.WriteLine(10 - 4 - 2);
        Console.WriteLine(100 / 5 / 2);
    }
}

右结合的赋值

赋值运算是右结合的。a = b = 5 会先将 5 赋给 b,然后再将该结果赋给 a。

using System;

class Program {
    static void Main() {
        int a, b;
        a = b = 5;
        Console.WriteLine(a + " " + b);
    }
}

一元运算符具有紧密绑定性

一元 !、~ 和取负运算会先于二元运算符应用。-3 + 2 会先对 3 取负。

using System;

class Program {
    static void Main() {
        Console.WriteLine(-3 + 2);
        Console.WriteLine(!false && true);
    }
}

条件运算符

三元 ?: 运算符的优先级较低,仅高于赋值运算。请为复杂条件添加括号以确保安全。

using System;

class Program {
    static void Main() {
        int n = 7;
        string s = n % 2 == 0 ? "even" : "odd";
        Console.WriteLine(s);
    }
}

清晰胜过炫技

即使根据优先级可以省略括号,添加括号通常也能让代码更易于阅读和审查。

using System;

class Program {
    static void Main() {
        int a = 2, b = 3, c = 4;
        int result = (a * b) + (c * 2);
        Console.WriteLine(result);
    }
}

快速检查

请测试您对优先级和结合性的理解。

回顾

优先级决定哪些运算符先执行;* 和 / 的优先级高于 + 和 -,而括号的优先级高于所有运算符。结合性用于解决优先级相同的运算符之间的顺序问题:大多数运算符从左到右结合,而赋值运算从右到左结合。

如果不确定,请添加括号以提高代码的清晰度。

常见问题解答

「运算符优先级与结合性」课时是免费的吗?

是的 — 「运算符优先级与结合性」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 4 节课。

「运算符优先级与结合性」这节课中我会学到什么?

了解求值顺序并使用括号。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 C# Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「运算符优先级与结合性」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 C# Academy 课中编写并运行代码吗?

能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 算术与赋值运算符
  2. 比较与逻辑运算符
  3. 位运算与移位运算符
  4. 运算符优先级与结合性
← 返回 C# Academy