int count = 0;
for (int i = 0; i < 4; i++)
{
   count = count += count++;
   Console.Writeline(count);
}为什么结果永远是零?

解决方案 »

  1.   

    count++ 是赋了值后才自加的
    如果你把count++ 改成++count 就不一样了
      

  2.   

    不懂,求详细解答,
                  int count = 0;
                for (int i = 0; i < 9; i++)
                {
                    
                    count++;
                   
                    Console.WriteLine(count);
                }
        会自增。
                  int count = 0;
                for (int i = 0; i < 9; i++)
                {
                    
                    count = count++;
                   
                    Console.WriteLine(count);
                }
    这样又变成零了,没自增
      

  3.   

    count = count += count++;
    这条语句可以看成count=count=count+count++;循环第一次count为0,所以count+count++就为0,所以第二个count就为0,第一个count因此也为0。剩下的循环也是这样的情况
      

  4.   

    好吧  
    楼主
    运算的这样
    先把式子分解
    变成   count=count+(count++);  不难理解吧
    然后   因为++是后面才加上的  实际上count已经赋值了   所以继续分解
    变成   count=count+count;
    现在你可以理解为什么是0了吧  
      

  5.   

    count = count += count++;
    按C语言从右至左的计算原则上式可转化为:
    count = count + count++;count 初值是0 
    count++ 计算在count = count + count++计算之后所以始终是零
      

  6.   

     int count = 0;
      for (int i = 0; i < 9; i++)
      {
        
      count = count++;
        
      Console.WriteLine(count);
      }
    count++这个东东,是先使用count的最初值0,然后count自增。
    可以对比++count来理解,++count是先自增将count的值变为1,再赋值。
      

  7.   


    前面的是没有运算符的,所以每次循环 count的值都在变化,而 下面的就不一样了,他是count=count++,这样以来的话它的值就没有变化了,是先将本身的 值赋值给 count这个变量了,而本身的值是0,所以打印 count的结果当然就是 0 了。