我的一位同学问了这个问题,我想确定我告诉他的答案是正确的。基本上,下面的代码(它确实将"6“显示为答案)在到达MessageBox.Show((i--).ToString());时将他搞糊涂了。
我的解释是递减操作(i--)实际上并没有发生,因为它被传递给MessageBox对象的.Show方法。所以它显示6,因为它实际上并没有将该值减去1。
这是正确的解释吗?我从来没有尝试在同时显示值的同时抛出inc/dec操作,所以我不确定我的推理是否正确。谢谢!
int i = 6; // I starts as 6...
if (i >=4 ) // Then the check to see if i >= 4 is TRUE...
{
if( i == 5) // The check to see if i == 5 is FALSE...
{
MessageBox.Show(i.ToString());
}
else
{
MessageBox.Show((i--).ToString()); // ****
}
}
else
{
MessageBox.Show((i++).ToString());
}发布于 2012-05-04 01:43:33
i--返回i的值,并返回递减之前的值。
你应该按照逻辑顺序阅读它(正如创建者所希望的那样):
puts the value
and then decrements如果之前是6,则返回6(打印),即使在i的值为5之后也是如此。
请注意,--i会递减并返回递减后的值。
发布于 2012-05-04 01:44:13
i--返回预减量值。如果需要递减后的值,则需要--i
发布于 2012-05-04 01:44:27
i--的意思是在使用之后递减i。
https://stackoverflow.com/questions/10436604
复制相似问题