为什么此代码的输出值为100.请帮助我理解这种行为。
static void Main(string[] args)
{
int i = 100;
for (int n = 0; n < 100; n++)
{
i = i++;
}
Console.WriteLine(i); // This gives the Value 100 why?
}
我在C和C#编译器中运行了相同的代码。 在C编译器中给出值200 在C#编译器中给出值100。
为什么同一段代码在两个编译器中的行为如此?
答案 0 :(得分:2)
这与
相同static void Main(string[] args)
{
int i = 100;
for (int n = 0; n < 100; n++)
{
int x = i;
i++;
i = x;
}
Console.WriteLine(i); // This gives the Value 100 why?
}
您在循环中一直重新分配100
答案 1 :(得分:0)
因为它是后增量。首先分配100然后递增。
i = i ++;
因此输出。