1.基本使用
类比while
在while循环中,有三个不可或缺的部分:初始化,判断部分,调整部分
int i = 0;//初始化
while (i < 10)//判断部分
{
……
i++;//调整部分
}
三个部分太分散,用for循环可集为一体,简洁
格式:for (表达式1;表达式2;表达式3)
表达式1(只执行一次):初始化
表达式2( 每循环一次执行一次):判断
表达式3(每循环一次执行一次):调整
三个部分可以按需要省略,但判断部分省略会死循环
如 for (;;)语法上成立
for (i=0;i<10;i++)
{
……
}
2. break和continue在for循环中的作用
类比while
根据需要,可以在代码块中加break;提前跳出循环(永久终止)
而continue;是跳出本次循环,进入while循环的判断部分,决定是否进行下次循环
3.建议
01.不建议在for循环体内修改循环变量否则循环失去控制
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d", i);
i = 4;
}
return 0;
}
死循环
02.建议for循环控制变量的取值采取“前闭后开”的写法
for (i=0;i<10;i++) i=0前闭,i<10后开
#include <stdio.h>
int main()
{
int arr[10]={0};
int i=0;
for (i=0;i<10;i++)
printf("%d",arr[i]);
return 0;
}
结果打印10次0,i<10的10有意义
3.for循环可以嵌套
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 10; i++)
{
for (j = 0;j<i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
练习1:求打印结果:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for (; i < 3; i++)
{
for (; j < 3; j++)
{
printf("A\n");
}
}
return 0;
}
并非打印9个A,只有3个A
for循环中i,j都没有初始化,导致j=3时直接跳出j循环
练习2(易错):
循环进行了几次?
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0; i++, k++)
k++;
return 0;
}
for的判断部分不是判断k是否等与0 ,而是把0赋值给k
0赋值给k,0为假,不循环
循环0次