gpt4 book ai didi

c# - 为什么在计算表达式时会得到错误的结果?

转载 作者:太空狗 更新时间:2023-10-29 23:57:59 25 4
gpt4 key购买 nike

int[] a = {5, 6, 10}
int n = a.Max() + a.Sum() % 10;
Console.Write(n);

代码打印出 11,但我期望是 1,因为 31 % 10 = 1。谁能解释为什么上面的代码给出了不同的答案?

最佳答案

问题是关于运算符优先级的。

在计算表达式 int n = a.Max() + a.Sum() % 10; 时,

根据运算符优先级,您可以看到加法运算在乘法之后。

enter image description here

为了解决这个问题,一种解决方案是使用括号,如下所示。

int n = (a.Max() + a.Sum()) % 10;

如果您可以按照运算符优先级看到,使用方括号确保将其中的内容识别为表达式并首先对其求值。

这个可以根据https://learn.microsoft.com/en-us/cpp/c-language/precedence-and-order-of-evaluation?view=vs-2019来理解.

事实上,所有基于 c 的语言的运算符优先级都是相似的。

关于c# - 为什么在计算表达式时会得到错误的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57782647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com