下面程序允许结果是4,为什么 int n=0; while(n++<2); printf("%d"

下面程序允许结果是4,为什么intn=0;while(n++<2);printf("%d",n)... 下面程序允许结果是4,为什么
int n=0;
while(n++<2);
printf("%d",n)
展开
 我来答
GEASSTRY
2014-01-14 · 超过14用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:30万
展开全部

最终输出结果是3,不是4,因为在while循环中当n大于等于2时就会结束循环。


如下是我用C#给你测试的代码以及结果,希望对你有所帮助。

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            int n = 0;

            while (n++ < 2) ;

            Console.WriteLine("结果为:{0}",n);

            Console.ReadKey();

        }

    }

}

追问
牛逼,估计是我习题册印错了
追答
大家互相帮助吧!O(∩_∩)O~
理工知识库
2014-01-14
知道答主
回答量:10
采纳率:0%
帮助的人:8.8万
展开全部
单线程下:
n++表示使用n之后再加1
那么n=2时,n<2不成立,跳出while循环,然后n自加1,则n=3
所以n最多等于3,不可能为4。

如果是多线程执行:
那么可能有两个线程执行此代码,当n=2跳出循环后,一个线程加1后进入等待,另一个线程
又加1,则输出为4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
本人神ID啊
2014-01-14 · TA获得超过115个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:95.7万
展开全部
比方说,当n=1时,执行n++,n的值为2,n++的返回值为1

所以n++<2不成立时,n++的返回值为3,这时n的值为4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式