C while
最后修改于 2023 年 1 月 9 日
C while 教程演示了如何使用 while 语句在 C 语言中创建循环。
while 语句
while 语句用于创建 while 循环。while 循环是一种控制流语句,它允许代码根据给定的布尔条件重复执行。
这是 while 循环的一般形式
while (expression) {
statement(s);
}
while 关键字执行大括号括起来的块内的语句。只要表达式的计算结果为 true,就会执行这些语句。
C while 示例
以下示例使用 while 语句来计算总和。
#include <stdio.h>
int main() {
int i = 0;
int sum = 0;
while (i < 10) {
sum += i;
i++;
}
printf("%d\n", sum);
return 0;
}
我们计算 1..9 的数字之和。
while 循环包含三个部分:初始化、测试和更新。语句的每次执行称为一个周期。
int i = 0;
我们初始化 i 变量。它用作计数器。
while (i < 10) {
...
}
while 关键字后面的圆括号内的表达式是第二阶段:测试。只要表达式的计算结果为真,循环体内的语句就会被执行。当表达式的计算结果为假时,循环终止。
i++;
这是 while 循环的最后第三个阶段:更新。我们递增计数器。请注意,不正确处理 while 循环可能导致无限循环。
$ ./simple 45
C while - 计算阶乘
正整数 n 的阶乘,表示为 n!,是所有小于或等于 n 的正整数的乘积。
n! = n * (n-1) * (n-2) * ... * 1
这是计算阶乘的公式。
#include <stdio.h>
int main() {
int i = 10;
int factorial = 1;
while (i > 1) {
factorial *= i;
i--;
}
printf("%d\n", factorial);
return 0;
}
在此示例中,我们使用 while 循环计算 10! 的阶乘。
$ ./factorial 3628800
C while - 无限循环
while (1) 创建一个无限循环。为了终止循环,我们使用 break 语句。
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
srand(time(NULL));
while (1) {
int r = rand() % 30;
printf("%d ", r);
if (r == 22) {
break;
}
}
printf("\n");
return 0;
}
该示例计算一个 0..29 之间的随机值。如果该值为 22,则使用 break 语句完成循环。
$ ./random 21 6 0 4 20 26 14 6 0 29 12 15 17 2 15 24 12 17 25 29 6 10 14 22
C while - 遍历数组
while 语句可用于遍历数组。
#include <stdio.h>
int main() {
int vals[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int i, sum = 0;
size_t len = sizeof vals / sizeof vals[0];
while (i <= len) {
sum += vals[i];
i++;
}
printf("The sum is: %d\n", sum);
return 0;
}
在此示例中,我们有一个整数数组。我们使用 while 语句遍历数组并计算值的总和。
$ ./loop_array The sum is: 55
C do while 示例
do while 语句是 while 语句的一种特定形式,其中在检查条件之前先执行代码块。因此,代码块至少执行一次。
#include <stdio.h>
int main() {
int val, sum = 0;
do {
printf("Enter a number: ");
scanf("%d", &val);
sum += val;
} while(val != 0);
printf("The sum is: %d\n", sum);
return 0;
}
该示例要求用户反复输入一个数字。它计算所有这些值的总和。当用户输入零时,循环终止。
$ ./do_while Enter a number: 2 Enter a number: 3 Enter a number: 4 Enter a number: 5 Enter a number: 0 The sum is: 14
在本文中,我们介绍了 C 语言中的 while 语句。