我帮你把格式调换一下~
void main()
{
int i=3;
for(; i<=18;)
{
//i++;
if(i%6==1)
{
printf("%d\t",i);
}
else
{
continue;
}
}
}
// 我看了一下,你发的代码打印出来是
7 13 19
就是不知道你原来的代码是怎么写的,
你首先要了解这个for循环是如何执行的
for(i=0;i<=2;i++)
{
(语句);
}
一开始 i=0;进入判断符合就进入语句中,语句完毕后就进行 i 自增,i 就会由0变成1;接下来就判断,小于2;进入语句
语句又完毕,i 在自增;i 会由1 变成 2 ;判断
,小于等于2;进入语句,语句完毕,i 又自增,i 会由2变成3;判断,3大
于2不符合判断条件,循环完毕,
循环结束之后
i 的值是为3 的
,不是2
有好多新手认为,这个循环语句结束之后 i 的
值为2;
在讲 continue的用法,
它是结束本次循环,进入下次循环,就是语句不执行,直接进入i++;在判断;
而你这个为最后会有一个
19
是因为
是当你的 i为18时,刚好是判断条件的边界值,而你的i++又是在循环体里面,判断语句
是在你执行完for里面的语句之后才判断的。也就是说你的 i 最后的值为19 并且进入了 for循环里面的语句。