C# 显示与我的接受不同的输出
我不知道这个问题以前有没有问过,但我的问题如下。C# 显示与我的接受不同的输出,c#,console-application,C#,Console Application,我不知道这个问题以前有没有问过,但我的问题如下。 在我的c#console应用程序中,我声明了一个变量I,并将值赋值为 inti=0现在我想要增量i乘以2,显然我可以使用下面的cede int i = o; i += 2; Console.WriteLine(i); Console.ReadLine(); //OUTPUT WILL BE 2 但这是我的另一个解决方案。由于我的懒惰行为,我拒绝使用此代码,我使用了以下代码 int i = 0; i += i++; Console.Write
在我的c#console应用程序中,我声明了一个变量I,并将值赋值为 inti=0现在我想要增量i乘以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();
在上面的代码中,我已经接受了第一次I++将增加1,之后它将再次增加I+=I,但这件事不会发生我不知道为什么会发生这种事情,可能是我做错了什么,或者是编译问题。????? 有人能告诉我为什么会发生这种事吗????
我只是想知道为什么代码2不起作用?那里发生了什么事?
i
需要从1开始,这样才能起作用
int i = 1;
编辑::
int i = 0;
i += i++;
上面的代码表示以下内容:
i+0
然后添加一个
如果使用
i++=+i
然后,当它预先处理增量时,您将得到i+1
。i++返回i(0)的值,然后加1。i++被称为增量后
您所追求的是++i,它将首先增加1,然后返回增加的数字
(有关增量运算符的详细信息,请参见)您的代码正在执行的操作:
- 对“i++”进行评估。“i++”的值是增量发生之前i的
值
- 作为“i++”评估的一部分,
。现在我的值是1李>i增加1
- 任务已执行。i被分配了“i++”的值,即增量之前i
的值,即0
int oldValue = i;
i = i + 1
//is the same thing as
i = oldValue;
post increment
运算符在执行i之后递增整数“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.
因此,进行两步增量的最佳方法如下:
i +=2
这里已经回答了几次,基本上i++在赋值后增加i。如果需要,可以使用++i在之前递增:
ì+=+++i代码>,您的问题得到了更详细的回答。您也可以尝试i=i+2;是的,我知道这一点,但抛出了我的逻辑,它应该增加2,我的问题是,在我的代码2中发生了什么或什么是错误的?为什么它不给我ans=2?是的,我知道这一点,但我的逻辑是,它应该增加2,我的问题是,在我的代码2中发生了什么或什么是错误的?为什么它不给我ans=2?输出将是1
而不是2
好的,我知道,但是你能告诉我代码2中发生了什么吗?