using System;
class Test
{
    public static void Main()
    {
        int p = 0;
        for (int i = 1; i <= 2; i++)
            for (int j = 1; j <2; ++j)
                for (int k = 2; k >= 1; --k)
                    p = p + i + j + k;
        Console.WriteLine(p.ToString());
        Console.ReadLine();
    }
}在C#中For语句中的 ++i 和i++  执行下面的语句时i的值是否都发生变化,这个题中的这三个变量的值是怎么变化的,与我的计算结果不一样,把我弄糊涂了,请大家帮我一下!!!

解决方案 »

  1.   

    i++ 在执行这一句时i的值先加1,相当与i=i+1; ++i 在执行这一句时i的值是不变的,在执行完以后i+1;
      

  2.   

    不好意思啊,楼主。好像写反了。i++是先赋值,后自加。 在执行这一句时先取得i的值,在执行完以后i+1;
    ++i是先自加,然后再赋值。 在执行这一句时先i+1然后再取得i的值
      

  3.   

    lz的例子里面,无论是i++还是++i,对程序运行都没有实质性的影响,过了这一句,i都自增了1,区别仅仅在没过这句的时候,i的值不同