一、C语言的循环结构
循环语句是C语言中的一种重要的控制结构,允许程序根据特定条件重复执行某段代码,直到满足退出条件为止。C语言提供了三种主要的循环语句:for循环、while循环和do-while循环。
-
for循环:for循环是C语言中最常用的循环语句之一,通常用于在已知循环次数的情况下执行特定代码块。for循环由初始化、循环条件和循环迭代三部分组成,可以在一行内紧凑地表达循环结构。
-
while循环:while循环是一种适用于未知循环次数的情况下执行代码块的循环结构。在进入循环体之前,先判断循环条件是否为真,只有在条件为真的情况下才会执行循环体内的代码。
-
do-while循环:do-while循环与while循环相似,不同之处在于循环体内的代码至少执行一次,然后才会检查循环条件。这意味着即使循环条件一开始就不满足,循环体也会至少执行一次。
二、简单介绍while、do-while、for语句基本结构
1.while循环的基本结构
while (循环条件) {
// 循环体代码
}
循环条件:在每次循环迭代之前,循环条件被检查。如果条件为真(非零),则执行循环体内的代码块;如果条件为假(零),则退出循环。
下面是一个简单的示例,使用while循环计算1到10的和:
#include <stdio.h>
int main() {
int sum = 0;
int i = 1; // 初始化计数器
// 使用while循环计算1到10的和
while (i <= 10) {
sum += i; // 累加每个数到sum中
i++; // 更新计数器
}
// 输出结果
printf("1到10的和为:%d\n", sum);
return 0;
}
运行结果:
1到10的和为:55
循环条件是i <= 10
,循环体内的代码是sum += i;
和i++;
。每次循环迭代,先检查循环条件是否为真,如果为真则执行循环体内的代码,然后更新计数器i
的值。当i
的值大于10时,循环条件变为假,退出循环。
do-while循环是C语言中另一种常用的循环结构,它与while循环的不同之处在于,do-while循环保证循环体内的代码至少执行一次,然后再检查循环条件。这种特性使得do-while循环在某些情况下非常有用,特别是当需要确保至少执行一次循环体内的代码时。
2.do-while循环的基本结构
do {
// 循环体代码
} while (循环条件);
-
循环体代码:循环体内的代码块会至少执行一次。
-
循环条件:在每次循环迭代之后,循环条件被检查。如果条件为真(非零),则继续执行循环体内的代码块;如果条件为假(零),则退出循环。
下面是使用do-while循环计算1到10的和:
#include <stdio.h>
int main() {
int sum = 0;
int i = 1; // 初始化计数器
// 使用do-while循环计算1到10的和
do {
sum += i; // 累加每个数到sum中
i++; // 更新计数器
} while (i <= 10);
// 输出结果
printf("1到10的和为:%d\n", sum);
return 0;
}
这段代码的功能与前面使用while循环计算1到10的和的例子相同。这里使用了do-while循环来实现相同的功能。程序输出与前面相同。
运行结果:
1到10的和为:55
在这个示例中,循环体内的代码是sum += i;
和i++;
。首先执行循环体内的代码,然后检查循环条件i <= 10
。只有在i
的值小于等于10时,循环会继续执行。这确保了至少执行一次循环体内的代码,即使在初始化之后循环条件可能为假。
3.for循环语句的基本结构
for循环是C语言中最常用的循环结构之一,通常用于已知循环次数的情况下执行特定的代码块。for循环由三个重要的部分组成:初始化表达式、循环条件和迭代表达式。
for循环的基本结构如下:
for (初始化表达式; 循环条件; 迭代表达式) {
// 循环体代码
}
-
初始化表达式:在循环开始前,初始化表达式用于初始化循环控制变量,并执行一次。通常用于初始化计数器或设置循环起始条件。
-
循环条件:在每次循环迭代之前,循环条件被检查。如果条件为真(非零),则执行循环体内的代码块;如果条件为假(零),则退出循环。
-
迭代表达式:在每次循环结束后,迭代表达式被执行。通常用于更新循环控制变量的值,以便在下一次循环中继续执行。
下面是使用for循环计算1到10的和:
#include <stdio.h>
int main() {
int sum = 0;
// 使用for循环计算1到10的和
for (int i = 1; i <= 10; i++) {
sum += i; // 累加每个数到sum中
}
// 输出结果
printf("1到10的和为:%d\n", sum);
return 0;
}
这段代码的功能与前面使用while循环和do-while循环计算1到10的和的示例相同。这里使用了for循环来实现相同的功能。程序输出与前面相同。
运行结果:
1到10的和为:55
在这个示例中,初始化表达式是int i = 1
,循环条件是i <= 10
,迭代表达式是i++
。循环体内的代码是sum += i;
,每次循环都会将i
的值累加到sum
中。循环执行完毕后,输出累加的结果。
三、while,do-while和for之间的区别和各自优点
-
while循环:
- 优点:
- 适用于未知循环次数的情况。
- 可以通过外部变量来控制循环条件,灵活性较高。
- 缺点:
- 需要在循环外部初始化循环控制变量,有时可能容易忘记初始化或更新循环控制变量,导致死循环或逻辑错误。
- 优点:
-
do-while循环:
- 优点:
- 确保循环体内的代码至少执行一次,适用于需要先执行一次循环体的情况。
- 不需要在循环外部显式初始化循环控制变量。
- 缺点:
- 循环体内的代码至少执行一次,可能会导致额外的性能开销或不必要的操作。
- 优点:
-
for循环:
- 优点:
- 结构清晰,循环条件、初始化和迭代表达式都在一处,易于理解和维护。
- 适用于已知循环次数的情况,更常用于迭代计数。
- 缺点:
- 对于未知循环次数的情况,可能不够灵活。
- 优点:
我们在实际使用过程当中,选择使用哪种循环结构取决于具体的需求和情况。while循环适用于未知循环次数的情况;do-while循环适用于需要确保循环体内的代码至少执行一次的情况;而for循环则适用于已知循环次数的情况,且其结构清晰,更易于管理循环控制逻辑。
在这里我挖一个坑,以后我会发布一篇关于循环结构进阶的文章
循环语句在图形绘制中的应用、绘制简单的几何图形、利用嵌套循环创建复杂图案…
感兴趣的朋友们记得关注我~