跳到主要内容

C 语言while和do...while循环

提示
  1. while循环的工作原理:在while循环中,如果测试表达式为真(true),则循环体内的语句会被执行,然后重新评估测试表达式,这个过程会持续进行直到测试表达式为假(false)。
  2. do...while循环的特点do...while循环至少执行一次循环体,然后再检查测试表达式;如果为真,则继续执行循环体,这个过程会重复进行直到测试表达式为假。
  3. 循环使用实例:使用while循环打印数字,使用do...while循环累加用户输入的数字,直到用户输入0为止。

在编程中,循环用于重复执行一段代码,直到满足特定条件。

C编程中有三种类型的循环:

  1. for循环
  2. while循环
  3. do...while循环

在上一个教程中,我们学习了for循环。在本教程中,我们将学习whiledo..while循环。

while循环

while循环的语法是:

while (测试表达式) {
// 循环体
}

while循环如何工作?

  • while循环评估括号()内的测试表达式
  • 如果测试表达式,则执行while循环体内的语句。然后,再次评估测试表达式
  • 这个过程持续进行,直到测试表达式被评估为
  • 如果测试表达式,则循环终止(结束)。

要了解更多关于测试表达式的信息(何时测试表达式被评估为),请查看关系运算符逻辑运算符

while循环的流程图

C编程中while循环的流程图

示例1:while循环

// 打印1到5的数字

#include <stdio.h>
int main() {
int i = 1;

while (i <= 5) {
printf("%d\n", i);
++i;
}

return 0;
}

输出

1
2
3
4
5

这里,我们将i初始化为1。

  1. i = 1时,测试表达式i <= 5。因此,执行while循环的主体。这在屏幕上打印1,并将i的值增加到2
  2. 现在,i = 2,测试表达式i <= 5再次为while循环的主体再次执行。这在屏幕上打印2,并将i的值增加到3
  3. 这个过程持续进行,直到i变成6。然后,测试表达式i <= 5将为,循环终止。

do...while循环

do..while循环与while循环类似,但有一个重要区别。do...while循环的主体至少执行一次。只有之后,才评估测试表达式。

do...while循环的语法是:

do {
// 循环体
}
while (测试表达式);

do...while循环如何工作?

  • do...while循环的主体执行一次。之后,评估测试表达式
  • 如果测试表达式,则再次执行循环体,并再次评估测试表达式
  • 这个过程持续进行,直到测试表达式变为
  • 如果测试表达式,则循环结束。

do...while循环的流程图

C编程中do while循环的流程图

示例2:do...while循环

// 编写程序,直到用户输入零时累加数字

#include <stdio.h>
int main() {
double number, sum = 0;

// 循环体至少执行一次
do {
printf("输入一个数字: ");
scanf("%lf", &number);
sum += number;
}
while(number != 0.0);

printf("总和 = %.2lf",sum);

return 0;
}

输出

输入一个数字: 1.5
输入一个数字: 2.4
输入一个数字: -3.4
输入一个数字: 4.2
输入一个数字: 0
总和 = 4.70

这里,我们使用了do...while循环来提示用户输入一个数字。只要输入的数字不是0,循环就会继续。

do...while循环至少执行一次,即第一次迭代不检查条件。只有在第一次迭代执行后才检查条件。

do {
printf("输入一个数字: ");
scanf("%lf", &number);
sum += number;
}
while(number != 0.0);

因此,如果第一次输入是非零数字,该数字会被添加到sum变量中,循环继续到下一次迭代。这个过程重复进行,直到用户输入0

但如果第一次输入是0,循环就不会有第二次迭代,sum变成0.0

循环外部,我们打印sum的值。