1. //for (表达式1; 表达式2; 表达式3) 2. //{ 3. // 语句; 4. //}
表达式1:设置初始条件,只执行一次,可以为多个变量设置初始值 表达式2:循环条件表达式,判断是否集训循环 表达式3:执行循环体后再执行
例如,使用for循环打印1-10的数字
1. //#define _CRT_SECURE_NO_WARNINGS 1 2. //#include <stdio.h> 3. //int main() 4. //{ 5. // int a = 0; 6. // for (a = 1; a < 11; a++) 7. // { 8. // printf("%d\n", a); 9. // } 10. // return 0; 11. //}
首先定义整形变量a=0,进入循环,将变量a的初始值定义为1,判断条件为a<11为真,然后输出a,最后a++,那么我们知道变量初始化只执行一次,变量增值在循环结束后执行,则a=1在最初只执行一次,给a赋值为1后便和循环没有关系了,a=1进入判断条件<11为真,输出a的值1,然后a自增=2,再次判断<11为真,输出a的值为2,a再次自增,如此循环下去,a的值到达11时循环结束 那么既然a=1只执行一次,a++每次都执行,那么可不可以把a=1放在循环外,a++放在循环体中呢?我们看代码,不过要注意的是,即使将表达式1和表达式3移除,()内的分号也不能去掉,但是我们一般不这样写代码,上一个代码才是标准的C语言代码
1. //#define _CRT_SECURE_NO_WARNINGS 1 2. //#include <stdio.h> 3. //int main() 4. //{ 5. // int a = 1; 6. // for (; a < 11;) 7. // { 8. // printf("%d\n", a); 9. // a++; 10. // } 11. // return 0; 12. //}
for循环中的break语句
1. //#define _CRT_SECURE_NO_WARNINGS 1 2. //#include <stdio.h> 3. //int main() 4. //{ 5. // int i; 6. // for (i = 1; i < 11; i++) 7. // { 8. // if (i == 5) 9. // { 10. // break; 11. // } 12. // printf("%d\n", i); 13. // } 14. // return 0; 15. //}
当我们在刚刚实现的代码中加入一个if语句,添加一个break后,执行结果发生了变化 可以看到当执行到i==5时循环结束了,所以,break在for循环中的意思为停止(跳出)当前循环(在这里是指的是for循环)
for循环中的continue
1. //#define _CRT_SECURE_NO_WARNINGS 1 2. //#include <stdio.h> 3. //int main() 4. //{ 5. // int i; 6. // for (i = 1; i < 11; i++) 7. // { 8. // if (i == 5) 9. // { 10. // continue; 11. // } 12. // printf("%d\n", i); 13. // } 14. // return 0; 15. //}
当我们将上述代码中的break替换为break之后,发现结果又发生了变化,可以看到结果没有输出5 那么我们可以知道continue的意思为跳过当前(本次)循环,执行下一次循环
for循环就讲解到这里,希望大家有所收获!