#include<stdio.h>
main()
{ int x=1,y=1;
while(y<=5)
{if(x>=10)break;
if(x%2==0)
{ x+=5;continue;}
x-=3; y++;
}
printf("%d,%d",x,y);
}
为何结果是6,6
循环开始,x=1,y=1
第一次循环: 条件1不成立,不会break。条件2不成立,执行3,x=-2, y=2;
第二次循环: 条件1不成立。条件2成立,x=3。执行continue,忽略语句3,执行下个循环。
第三次循环: 条件1不成立。条件2不成立,执行3,x=0, y=3
第四次循环: 条件1不成立。条件2成立,x=5。执行continue。忽略3,执行下一个循环。
第五次循环: 条件1不成立。条件2不成立,执行3,x=2, y=4
第六次循环: 条件1不成立。条件2成立,x=7。执行contine。 忽略3,执行下一个循环。
第七次循环: 条件1不成立。条件2不成立。执行3,x=4, y=5
第八次循环: 条件1不成立。条件2成立,x=9。执行continue。忽略3,执行下一个循环。
第九次循环: 条件1不成立。条件2不成立。x=6, y=6。
第十次循环: y<=5不成立,循环结束。