快来看 一个奇怪的有关问题++i与i++的区别
快来看 一个奇怪的问题++i与i++的区别本帖最后由 n530956064 于 2013-02-04 17:01:21 编辑class Program{s
快来看 一个奇怪的问题++i与i++的区别
本帖最后由 n530956064 于 2013-02-04 17:01:21 编辑
class Program
{
static void Main(string[] args)
{
for (int x = 1; x <= 10; ++x)
{
Console.WriteLine(x);
}
}
}
class Program
{
static void Main(string[] args)
{
for (int x = 1; x <= 10; x++)
{
Console.WriteLine(x);
}
}
}
这俩运算的结果:? 基础
[解决办法]你自己不会调试啊,前置先加后运算,后置先运行再加
[解决办法]1-11
[解决办法]结果应该是一样的,不知道有什么可奇怪的,反倒是我觉得你发这个帖子挺奇怪的。
[解决办法]你这循环代码,结果是一样的
下面这两句会不一样
int a=++x;
int a=x++;
[解决办法]楼主是想问下面这两个吧
下面这两个输出结果确实不同
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;和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的计算是在执行之后才自加的。
[解决办法]楼主要搞清for循环是怎么运算的啊
1.循环变量赋值
2.判断循环条件是否成立
3.执行循环体
4.计算循环变量