for语句的结构:
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分
表达式2为判断部分
表达式3为调整部分
每个部分都可以省略,但判断部分省略就会陷入死循环
简单的for循环示例:
//输出0-9数字
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d\n", i);
}
return 0;
}
for语句中break和continue的作用
1.break:永久的终止循环
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (5 == i)
break;//此时i等于5,执行break,程序马上跳出循环
printf("%d\n", i);
}
return 0;
}
输出结果:
2.continue:跳过continue后面的语句直接执行for中的调整部分,再执行判定部分
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (5 == i)
continue;//此时i等于5,直接执行i++,6<10为真,继续循环
printf("%d\n", i);
}
return 0;
}
输出结果:
建议:
1.不可在for循环体内修改循环变量,防止for循环失去控制。
2.建议for语句的循环控制变量的取值采用“前闭后开区间”写法。如可以写成
i<10,最好不要写成i<=9
3.初学者最好不要省略代码。比如
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("1 ");
}
}
return 0;
}
输出结果为9个1
但若是将for循环中的初始化部分省略则会输出不一样的结果:
int main()
{
int i = 0;
int j = 0;
for (; i < 3; i++)
{
for (; j < 3; j++)
{
printf("1 ");
}
}
return 0;
}
输出结果:
因为在j等于3之后跳出第二个for循环,然后i++,再继续第二个for循环时j没有被初始化,不会再继续执行,只会输出3个1