• 什么是循环
    • 重复执行代码
  • 为什么需要循环

image.png

  • 循环的实现方式
    • while
    • do…while
    • for

while语句

图片1.png
语法格式:

  1. while (条件) {
  2. 循环体
  3. ……
  4. }

需求:跑步5圈
示例代码:

  1. #include <stdio.h>
  2. int main() {
  3. // 需求跑步5圈
  4. // 1. 条件变量的定义
  5. int i = 1;
  6. // 2. while 控制重复的次数
  7. while (i <= 5) {
  8. // 3. 打印跑步第几圈
  9. printf("跑步第 %d 圈\n", i);
  10. // 4. 条件改变
  11. i++;
  12. }
  13. return 0;
  14. }

do…while语句

图片1.png
语法格式:

  1. do {
  2. 循环体
  3. ……
  4. } while (条件);
  • do-while 循环语句是在执行循环体之后才检查 条件 表达式的值
  • 所以 do-while 语句的循环体至少执行一次,do…while也被称为直到型循环

需求:跑步5圈
示例代码:

  1. #include <stdio.h>
  2. int main() {
  3. // 需求跑步5圈
  4. // 1. 条件变量的定义
  5. int i = 1;
  6. do {
  7. // 2.1 打印跑步第几圈
  8. printf("跑步第 %d 圈\n", i);
  9. // 2.2 条件改变
  10. i++;
  11. } while ( i <= 5 ); // 3. 控制重复的次数
  12. return 0;
  13. }

for语句

语法格式:

  1. for ( init; condition; increment ) {
  2. 循环体
  3. }
  • init会首先被执行,且只会执行一次
  • 接下来,会判断 condition,如果条件condition为真
  • 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句
  • 条件再次被判断

需求:跑步5圈

示例代码:

  1. #include <stdio.h>
  2. int main() {
  3. // 需求跑步5圈
  4. for (int i = 1; i <= 5; i++) {
  5. printf("跑步第 %d 圈\n", i);
  6. }
  7. return 0;
  8. }

死循环

  • 条件永远为真的循环就是死循环
  • 示例代码 ```c

    include

int main() { // while (1) { // printf(“根本停不下来\n”); // }

  1. for(;;) {
  2. printf("根本停不下来\n");
  3. }
  4. return 0;

}

  1. <a name="ZViFN"></a>
  2. # 循环案例
  3. <a name="YLuqG"></a>
  4. ## 实现1+2+3……100所有数字的累加
  5. ```c
  6. #include <stdio.h>
  7. int main() {
  8. // 需求:实现1+2+3……100所有数字的累加
  9. // 定义条件变量初始值为1
  10. int i = 1;
  11. // 定义累加变量,初始值为0
  12. int sum = 0;
  13. // 循环控制100次
  14. while (i <= 100) {
  15. // 累加
  16. sum += i;
  17. // 条件改变
  18. i++;
  19. }
  20. // 循环外面,打印最终的累加和
  21. printf("sum = %d\n", sum);
  22. // for循环实现
  23. int temp = 0;
  24. for (int i = 1; i <= 100; i++) {
  25. temp += i;
  26. }
  27. printf("temp = %d\n", temp);
  28. return 0;
  29. }

循环嵌套

需求如下:

  1. 通过for循环嵌套打印内容:
  2. * * * * *
  3. * * * * *
  4. * * * * *
  5. * * * * *
  6. * * * * *
  7. 说明:
  8. 1)每行有5个*,总共有5
  9. 2)*之间有空格隔开
  10. 3printf()1次只能打印1个*

示例代码:

  1. #include <stdio.h>
  2. int main() {
  3. for (int i = 0; i <= 4; i++) {
  4. for (int j = 0; j <= 4; j++) {
  5. printf("* ");
  6. }
  7. printf("\n");
  8. }
  9. return 0;
  10. }