C#如何执行此操作?
static void Main(string[] args)
{
int i = 4;
i *= 4 + 8 / 2;
Console.WriteLine(i);
}
在一个采访问题中提到了这个问题。我将BODMAS应用于它。 但这是错的。请解释一下。
答案 0 :(得分:0)
将执行相当于以下代码:
int i = 4;
int temp = 8 / 2;
temp = 4 + temp;
i = i * temp;
编译器会缩短它,因为它可以计算i *=
右边的常量,所以实际上它会编译为:
int i = 4;
i *= 8;
答案 1 :(得分:0)
i * = 4 + 8/2执行如下:
i = i *(4 +(8/2))
这是阅读它的正确方法。
答案 2 :(得分:0)
运算符优先级非常明确:/是乘法运算符,首先应用,然后是+。 * =是赋值运算符,最后应用。
所以:
8 / 2 = 4
4 + 4 = 8
i *= 8;
so i will be 4 * 8 = 32;