C while 和 do...while 循环
本文通过示例介绍在 C 语言中使用 while 和 do…while 循环。
在编程中,循环用于在满足指定的条件下重复的执行一段代码。
C 语言编程有三种类型的循环:
for
循环while
循环do...while
循环
while 循环
while
循环的语法是:
while (testExpression) {
// 循环体
}
while 循环工作原理
while
循环计算括号()
内部的testExpression
。- 如果
testExpression
计算结果为true
,则执行while
循环体内的语句。 - 然后,再次评估
testExpression
。 - 这个过程一直持续到
testExpression
被评估为false
。 - 如果
testExpression
为false
,则循环终止。
要了解有关测试表达式计算的更多信息,请查看关系和逻辑运算符。
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
程序说明:
- 程序先将
i
的值初始化为1
。 - 当
i = 1
时,测试表达式i <= 5
为真。因此,执行while
循环体:打印1
,并将i
增加到2
。 - 当
i = 2
时,测试表达式i <= 5
为真。因此,执行while
循环体:打印2
,并将i
增加到3
。 - 这个过程一直持续到
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
。- 如果
testExpression
为true
,再次执行循环体将。并继续评估testExpression
。 - 这个过程一直持续到
testExpression
变为false
。 - 如果
testExpression
为false
,则循环结束。
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
变量。