这个程序的输出结果是什么?为什么是这个结果?语句if (i++ <1)有什么作用?

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:36:00
#include <stdio.h>

main()
{
int i=0;

while (i < 10)
{
if (i++ < 1)
continue;
if (i == 5)
break;
i++;
}

printf("i = %d\n", i);
}

楼上的朋友不要误导人家哦~~

第一次循环:
i=0进入while语句,然后进入if(i++<1)。
这里i小于1,所以满足if语句的条件,执行它的内容。
括号之后,i将加上1.
然后continue结束这次循环。
第二次循环:
i=1进入while语句.两个if语句都不满足,
这里要千万注意了,第一个if语句的内容没有执行,
但是执行了它的判断语句,所以i也会自己加1.
程序结尾再加一次。
它永远也不会以i=5的状态进入第二个if语句。(都是偶数情况进入)

所以结果是11.

i=5进入

#include <stdio.h>//引入头文件stdio.h

main()//主函数main()
{
int i=0;//定义变量i

while (i < 10)//当i小于10时循环
{
if (i++ < 1)
continue;//如果i小于1执行下个循环,并且在每次判断后让i自增一次(i=i+1)
if (i == 5)
break;//如果i等于5退出循环
i++;//i自增一次
}

printf("i = %d\n", i);//输出i=(变量i)回车
}
/* 执行的时候先是定义变量i,进入循环的时候被赋予初值0,第一次判断1<10,进入循环,满足条件i<1,进入下一次循环并且i自增一次,这时i=1
第2次循环,i=2小于10,进入循环,i=2,不满足i<1,continue语句被跳过,但自增一次,i=3。判断i不等于5,break也被跳过,第3次进入循环,判断到i==5,满足条件,执行break,跳出循环,输出i*/

5

循环在i==5的时候会break掉
后面的i++不会执行

if(i++<1)
判断i自