首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段代码会将答案显示为6?

问为什么这段代码会将答案显示为6?
EN

Stack Overflow用户
提问于 2012-05-04 01:40:36
回答 4查看 280关注 0票数 2

我的一位同学问了这个问题,我想确定我告诉他的答案是正确的。基本上,下面的代码(它确实将"6“显示为答案)在到达MessageBox.Show((i--).ToString());时将他搞糊涂了。

我的解释是递减操作(i--)实际上并没有发生,因为它被传递给MessageBox对象的.Show方法。所以它显示6,因为它实际上并没有将该值减去1。

这是正确的解释吗?我从来没有尝试在同时显示值的同时抛出inc/dec操作,所以我不确定我的推理是否正确。谢谢!

代码语言:javascript
复制
        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());
        }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-04 01:43:33

i--返回i的值,并返回递减之前的值。

你应该按照逻辑顺序阅读它(正如创建者所希望的那样):

代码语言:javascript
复制
puts the value
and then decrements

如果之前是6,则返回6(打印),即使在i的值为5之后也是如此。

请注意,--i会递减并返回递减后的值。

票数 8
EN

Stack Overflow用户

发布于 2012-05-04 01:44:13

i--返回预减量值。如果需要递减后的值,则需要--i

票数 4
EN

Stack Overflow用户

发布于 2012-05-04 01:44:27

i--的意思是在使用之后递减i。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10436604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档