C while 和 do...while 循环

本文通过示例介绍在 C 语言中使用 while 和 do…while 循环。

在编程中,循环用于在满足指定的条件下重复的执行一段代码。

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

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

while 循环

while 循环的语法是:

while (testExpression) {
  // 循环体
}

while 循环工作原理

  • while 循环计算括号 () 内部的 testExpression
  • 如果 testExpression 计算结果为 true,则执行 while 循环体内的语句。
  • 然后,再次评估 testExpression
  • 这个过程一直持续到 testExpression 被评估为 false
  • 如果 testExpressionfalse ,则循环终止。

要了解有关测试表达式计算的更多信息,请查看关系和逻辑运算符

while 循环流程图

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

示例 1:while 循环

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

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

  return 0;
}

输出

1
2
3
4
5

程序说明:

  1. 程序先将 i 的值初始化为 1
  2. i = 1 时,测试表达式 i <= 5。因此,执行 while 循环体:打印 1,并将 i 增加到 2
  3. i = 2 时,测试表达式 i <= 5。因此,执行 while 循环体:打印 2,并将 i 增加到 3
  4. 这个过程一直持续到 i 变为 6。这时,测试表达式 i <= 5,然后,循环终止。

do…while 循环

do...while 循环类似于 while 循环,但有一个重要区别循环:do...while 循环体在第一次计算测试表达式之间就首先执行一次。

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

do {
  // the body of the loop
}
while (testExpression);

…while 循环工作原理

  • do...while 循环先被执行一次,然后再评估 testExpression
  • 如果 testExpressiontrue,再次执行循环体将。并继续评估 testExpression
  • 这个过程一直持续到 testExpression 变为 false
  • 如果 testExpressionfalse ,则循环结束。

do…while 循环流程图

C编程中的do&hellip;while循环流程图
C编程中的do...while循环流程图

示例 2:do…while 循环

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

  // the body of the loop is executed at least once
  do {
    printf("Enter a number: ");
    scanf("%lf", &number);
    sum += number;
  }
  while(number != 0.0);

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

  return 0;
}

输出

Enter a number: 1.5
Enter a number: 2.4
Enter a number: -3.4
Enter a number: 4.2
Enter a number: 0
Sum = 4.70

在这里,我们使用了一个 do...while 循环来提示用户输入一个数字。只要输入数字不是 0,就可以循环工作。

do...while 至少执行循环体一次,即第一次迭代运行不检查的条件表达式。

do {
  printf("Enter a number: ");
  scanf("%lf", &number);
  sum += number;
}
while(number != 0.0);

因此,如果第一个输入是非零数字,则将该数字累加到 sum 变量,循环继续下一次迭代。重复此过程,直到用户输入 0

但是如果第一个输入为 0,则不会有循环的第二次迭代。

在循环外,我们打印 sum 变量。