MyException - 我的异常网
当前位置:我的异常网» C# » 快来看 一个奇怪的有关问题++i与i++的区别

快来看 一个奇怪的有关问题++i与i++的区别(2)

www.MyException.Cn  网友分享于:2013-02-20  浏览:5次

循环里一个分号就是一句代码
单独一句代码 ++x;和x++;都等价于x=x+1;
------解决方案--------------------
在for循环中,单步调试可以看到,先是执行赋值语句x=1,然后判断是否超出范围,x<=10。
如果没有超出范围,则执行 Console.WriteLine(x);语句。
最后执行x++或者++x,所以,在for循环中这两个代码是一样的。
牛哥结贴吧
------解决方案--------------------
你要想体现不同,用下面的代码:

        public static void Test1()
        {
            for (int x = 1, j = 1; x <= 10; ++x)
            { Console.WriteLine(j++); } 
        }

        public static void Test2()
        {
            for (int x = 1, j = 1; x <= 10; ++x)
            { Console.WriteLine(++j); }
        }

其实说简单点:j++ 就是先对外提供j(此处是给WriteLine做参数),再执行++运算;
              ++j 就先执行++运算,再对外提供j。
------解决方案--------------------
  class Program
    {
        static void Main(string[] args)
        {
            for (int x = 1; x <= 10; )
            {
                Console.WriteLine(++x);
            }
        }
    }
 
  class Program
    {
        static void Main(string[] args)
        {
            for (int x = 1; x <= 10; )
            {
                Console.WriteLine(x++);
            }
        }
    }


这结果就不同了。。。。
一样是因为x的计算是在执行之后才自加的。
------解决方案--------------------
引用:
引用:你自己不会调试啊,前置先加后运算,后置先运行再加

就是这里奇怪了“先加后运算” 不是从2开始吗 
我知道调试结果 
但是不理解结果


楼主要搞清for循环是怎么运算的啊

1.循环变量赋值
2.判断循环条件是否成立
3.执行循环体
4.计算循环变量

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有