c语言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");
}

在for循环的条件里有i<j,也就是说当i=j时就跳出了循环。但最后的结果却有"world"。这是为什么?

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");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-12
你这个个for循环要是成立只执行第一个if 因为你没用{}把俩个if都括起来 所以当for循环结束的时候 就是i=j的时候 第二个if就一定会成立
第2个回答  2018-02-12
因为语句 if(i==j)  printf("world\n"); 并不在for循环里!也就是说当i=j时,跳出了循环后,执行了printf("world\n"); 最后的结果就有"world"。
第3个回答  2018-02-12
if(i==j)
printf("world\n");
这一个你没有放在for下面,当循环内容有多个语句时要用花括号
相似回答