椋鸟C语言笔记#7

用 while、for、do while 构建循环语句

Featured image

萌新的学习笔记,写错了恳请斧正。

while

C 语言中有 3 种循环语句,while 便是其中一种:

while (表达式)
    语句;
//如果循环体想包含更多的语句,可以加上大括号

当表达式为真(非零时)重复执行语句直到表达式为假(0)

具体执行方式:

while执行方式

例子:

#include <stdio.h>
int main()
{
    int i = 1;  //初始化变量
 
    while(i <= 114514)    //判断循环变量
    {
        printf("%d ", i);  //循环体
        i++;   //调整循环变量
    }
    return 0;
}

这就能打印 1~114514 的所有数字了

但是,当我们写的代码比较长时

用 while 就会导致循环变量的初始化 - 判断 - 调整相隔过长

这就不方便代码的书写、查看与维护

所以引入了 for 循环

for

for 循环是三种循环中最常用的,结构如下:

for(表达式1; 表达式2; 表达式3)
    语句;
//如果循环体想包含更多的语句,可以加上大括号

for 循环的三个表达式是有讲究的

for执行方式

整个循环过程中表达式 1 初始化部分只执行了一次

剩下来便是表达式 2、循环体、表达式 3 在不停循环

举个例子:

#include <stdio.h>
 
int main()
{
    int i = 0;
    
    for(i=1; i<=114514; i++)
    {
        printf("%d ", i);
    }
    
    return 0;
}

这同样也是打印 1~114514 的所有数字

do while

do while 是最少见的一种循环形式,用法如下:

do
    语句;
while (表达式);

它和上面两种循环有显著区别:

while 和 for 都是先判断,条件满足就进入循环

而 do while 是先循环,一轮结束后判断,不满足则退出循环

do while执行方式

举例:

统计非负整数位数

#include <stdio.h>
 
int main()
{
    int n = 0;
    scanf("%d", &n);
    int cnt = 0;
 
    do
    {
        cnt++;
        n = n / 10;
    }
    while (n);
    
    printf("%d\n", cnt);
 
    return 0;
}

这里用 do while 比用另外俩好一点

因为 n 即使是 0,也应该统计一位