首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何输出到代码9?

如何输出到代码9?
EN

Stack Overflow用户
提问于 2018-05-29 12:58:50
回答 5查看 96关注 0票数 0
代码语言:javascript
运行
复制
#include <stdio.h>
int main()
{
    int i=0;
    while(i++,i<=8);
    printf("%d\n",i);
    return 0;
}

为什么在对每个测试用例进行比较之后,i的增量就完成了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-05-29 13:01:19

i <= 8最后一次成功的时候是i = 8

在最后一次迭代中,执行i++,然后i <= 8失败,因为i = 9

请注意,,是一个sequence point,因此绝对保证在i <= 8之前执行i++Not so for similar constructs.

票数 8
EN

Stack Overflow用户

发布于 2018-05-29 13:01:21

事实并非如此。您的循环条件是i <= 8,当i达到9时,它是第一个不真的(您每次要将i递增1,所以它正好是9)。这就是为什么印9。

票数 2
EN

Stack Overflow用户

发布于 2018-05-29 13:03:53

要到达print()语句,while循环必须结束。终止条件,控制表达式应该计算为false (或者,换句话说,直到控制表达式比较等于0),也就是说,只有当i <= 8;计算为false时,它才是false。对于i作为9的值,就会发生这种情况。

下一行,i的值将被打印出来。所以,你可以看到9

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

https://stackoverflow.com/questions/50585051

复制
相关文章

相似问题

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