记录自己对于循环中不清楚的地方,方便后续查阅
1、循环类型


主要是while循环和do-while循环
while循环:先测试条件在执行循环体
do-while循环:先执行循环体再测试条件

2、循环控制语句


  • break语句
    终止循环switch 语句中的一个case,程序流将继续执行紧接着循环或 switch 的下一条语句。
    示例代码

    #include <stdio.h>
    int main ()
    {
     /* 局部变量定义 */
     int a = 10;
    
     /* while 循环执行 */
     while( a < 20 )
     {
        printf("a 的值: %d\n", a);
        a++;
        if( a > 15)
        {
           /* 使用 break 语句终止循环 */
            break;
        }
     }
    
     return 0;
    }

    输出结果

    a 的值: 10
    a 的值: 11
    a 的值: 12
    a 的值: 13
    a 的值: 14
    a 的值: 15

    注:当程序执行到a=15,while语句条件满足,打印a=15,a自增1变为16,if判断条件满足,执行break,跳出的是while循环(不是if判断)执行 return 0语句,程序执行完毕。
    如果是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

  • continue语句
    告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。会跳过当前循环中的代码,强迫开始下一次循环.
    对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do...while 循环,continue 语句 重新执行条件判断语句。
    示例代码

    #include <stdio.h>
    int main ()
    {
     /* 局部变量定义 */
     int a = 10;
    
     /* do 循环执行 */
     do
     {
        if( a == 15)
        {
           /* 跳过迭代 */
           a = a + 1;
           continue;
        }
        printf("a 的值: %d\n", a);
        a++;
    
     }while( a < 20 );
    
     return 0;
    }

    输出结果

    a 的值: 10
    a 的值: 11
    a 的值: 12
    a 的值: 13
    a 的值: 14
    a 的值: 16
    a 的值: 17
    a 的值: 18
    a 的值: 19

    注:当程序执行到a=14,do一次循环体,if判断不满足,执行printf输出a=14,之后a自增1变为15,判断条件15<20满足,再进行do循环体,此时if判断满足,a变为16,执行continue后,结束本次循环,不执行printf和a++,直接执行条件判断语句16<20,满足条件执行do循环体,不满足if判断,执行printf输出a=16,之后a自增1变为17,后面的执行和a=14之前一致,直到do-while的条件判断不满足,停止循环,执行return 0