运算符优先级与结合性
了解求值顺序并使用括号。
运算符优先级与结合性 是 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 反馈 — 无需本地设置。