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次