Hay我甚至不知道如果这个问题之前有过问题,但我的问题如下 在我的c#控制台应用程序中,我声明了一个变量 i ,并将值指定为 int i = 0 现在我希望增加2乘2,显然我可以使用以下cede。
int i = o;
i += 2;
Console.WriteLine(i);
Console.ReadLine();
//OUTPUT WILL BE 2
但这是我的备用解决方案。由于我的懒惰行为,我拒绝使用此代码,我使用了以下代码。
int i = 0;
i += i++;
Console.WriteLine(i);
Console.ReadLine();
在上面的代码中,我接受了 FIRST i ++将增加1,然后再增加 i + = i ,但这件事情不会发生。
我不知道为什么这件事发生可能是我做错了什么或者有些编译问题。?????
任何人都可以建议我为什么会发生这种情况????
我只是想知道为什么代码2没有用?那里发生了什么?
答案 0 :(得分:2)
i ++返回i(0)的值,然后加1.I ++称为后增量。
你所追求的是++ i,它将首先增加1,然后返回增加的数字。
(有关增量运算符的详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx)
答案 1 :(得分:0)
i
需要从1开始才能完成这项工作。
int i = 1;
EDIT ::
int i = 0;
i += i++;
上面的代码表达了以下内容:
i + 0
然后添加一个
如果您使用i += ++i;
,则会在事先处理增量时获得i + 1
。
答案 2 :(得分:0)
您的代码正在做什么:
value of i before the increment
发生的。i is incremented by one
。现在我的值为1; before
增量的值 - 即0。即,“i = i ++”大致转换为
int oldValue = i;
i = i + 1
//is the same thing as
i = oldValue;
执行i ++后post-increment
运算符递增整数“i”的值
供您参考:
i++ will increment the value of i, but return the pre-incremented value.
++i will increment the value of i, and then return the incremented value.
因此,执行2步增量的最佳方法是:
i +=2