c语言for循环结束条件

#include<stdio.h>main(){inti,j=5;for(i=2;i<j;i++)if(i<j)printf("hello\n");if(i==j)pri... #include<stdio.h>
main()
{
int i,j=5;
for(i=2;i<j;i++)
if(i<j)
printf("hello\n");
if(i==j)
printf("world\n");
}

在for循环的条件里有i<j,也就是说当i=j时就跳出了循环。但最后的结果却有"world"。这是为什么?
展开
 我来答
风若远去何人留
2018-02-12 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450096
专业C/C++软件开发

向TA提问 私信TA
展开全部

if(i==j)本身就是在循环外的。 

没{}时, for只控制之后一句。

所以这个代码等效于

#include<stdio.h>
main()
{
    int i,j=5;
    for(i=2;i<j;i++)
    {
        if(i<j)
            printf("hello\n");
    }
    if(i==j)
        printf("world\n");
}
ouyang1917
2018-02-12 · TA获得超过237个赞
知道小有建树答主
回答量:529
采纳率:66%
帮助的人:162万
展开全部
你这个个for循环要是成立只执行第一个if 因为你没用{}把俩个if都括起来 所以当for循环结束的时候 就是i=j的时候 第二个if就一定会成立
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ec623e46f
2018-02-12 · TA获得超过747个赞
知道小有建树答主
回答量:344
采纳率:79%
帮助的人:55.4万
展开全部
因为语句 if(i==j)  printf("world\n"); 并不在for循环里!也就是说当i=j时,跳出了循环后,执行了printf("world\n"); 最后的结果就有"world"。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就算你予我情深
2018-02-12
知道答主
回答量:18
采纳率:75%
帮助的人:7.1万
展开全部
if(i==j)
printf("world\n");
这一个你没有放在for下面,当循环内容有多个语句时要用花括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式