请教一个c#中的一个菜鸟级问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:36:15
class Program
{
static void Main(string[] args)
{
int a=2,b;
Console.WriteLine(b=a++);
Console .WriteLine (b=a--);
Console .WriteLine (b=++a);
Console.WriteLine(b=--a);
Console.ReadKey();
}
其输出结果为何是“2,3,3,2”,为什么不是“2,2,3,1”啊?

Console.WriteLine(b=a++);//b先=a,然后a+1 ,a=3
Console .WriteLine (b=a--); //a++是先执行前面操作之后再执行这一步操作

Console .WriteLine (b=++a); //先计算a+1,再给b赋值
Console.WriteLine(b=--a); //先执行++a,再执行后面的操作

++A,先执行A+1,如果是A++,则先执行前面的操作(如赋值)之后再进行A+1,所以上面的结果是"2,3,3,2"

a=2;b=0
Console.WriteLine(b=a++);
先计算 b =a 返回 2,然后a++

//b=2,a=3
Console .WriteLine (b=a--);
先计算 b =a 返回 3,然后a--

//b=3,a=2
Console .WriteLine (b=++a);
先计算++a ,a为3,然后 b= a 返回3

//b=3,a=3;
Console.WriteLine(b=--a);
先计算--a ,a为2,然后 b= a 返回2

要明白程序执行顺序

因为a++是后加,a--是后减
也就是执行完Console.WriteLine(b=a++)以后,先输出b=2,然后a+1,a=3
再执行Console .WriteLine (b=a--); 先赋值给b,输出b=3,然后a-1,a=2
再Console .WriteLine (b=++a); 先a+1,a=3,然后赋值给b,输出b=3
再Console.WriteLine(b=--a); 先a-1,a=2,然后赋值给b,输出b=2
不知道你明白没?

b=a-- b=a=3 然后a=a-1=2
b=--a b=a-1=3-1=2