C#增量运算符(++)问题:为什么输出错误?
我有一个简单的c#控制台应用程序,但我输错了为什么?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication11 { class Program { static void Main(string[] args) { int i = 100; for (int n = 0; n < 100; n++) { i = i++; } Console.WriteLine(i); } } }
i++
是一个返回i
的表达式,然后递增它。
因此, i = i++
将评估i
,递增i
,然后在i
递增之前将i
指定给原始值。
您需要使用++i
,它将返回递增的值。
我猜你真的想要解释为什么它不能按预期工作,而不是实际得到结果,因为你可以通过设置i
等于200来获得结果。
在创建变量的临时副本之后应用postincrement运算符。 临时用于语句中的操作,然后执行赋值,因此您的循环等效于:
for (int n = 0; n < 100; n++) { j = i; i++; i = j; }
既然如此,增量基本上被丢弃, i
实际上从未增加。
i = i++;
这将i设置为i的旧值,然后递增它。 我想你想要:
i++;
或者更好的是,如果您的编译器是蹩脚的并且没有优化返回:
++i;
干杯。
线i = i++;
两次写入变量i。 首先执行后增量,但是赋值语句会覆盖它。
试试i++;
只使用i ++,而不是i = i ++。
我猜你认为你会得到的是我会逐渐增加每个循环,但你编码它的方式是你将i的值赋给它自己并且++操作发生’之后’所以i的值似乎没有增加。 检查++ i和i ++有什么区别?
上述就是C#学习教程:C#增量运算符(++)问题:为什么输出错误?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/988068.html