C - 循环
循环是一种编程结构,表示由一个或多个语句组成的程序块,这些语句会重复执行指定的次数,或直到达到某个条件为止。
重复性任务在编程中很常见,而循环对于节省时间和减少错误至关重要。在C 语言编程中,提供了关键字 while、dowhile 和 for 来实现循环。
循环结构是任何处理逻辑的重要组成部分,因为它们有助于反复执行相同的过程。C 语言程序员应该熟悉循环结构的实现和控制。
编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们多次执行一个或一组语句。
C 循环语句流程图
下面给出了适用于任何编程语言的循环语句的通用流程图 -

C 程序中的语句始终以自上而下的方式执行。如果我们要求编译器返回到之前的任何步骤,则构成一个循环。
示例:C 中的循环
为了理解程序中循环的必要性,请考虑以下代码片段 -
#include <stdio.h> int main (){ // 局部变量定义 int a = 1; printf("a: %d ", a); a++; printf("a: %d ", a); a++; printf("a: %d ", a); a++; printf("a: %d ", a); a++; printf("a: %d ", a); return 0; }
输出
运行此代码后,您将获得以下输出 -
a: 1 a: 2 a: 3 a: 4 a: 5
该程序打印"a"的值,并将其值递增。这两个步骤重复多次。如果您需要将"a"的值从 1 打印到 100,则无需在代码中手动重复这些步骤。我们可以让编译器重复执行打印和递增这两个步骤,直到达到 100。
示例:在 C 语言中使用 While 循环
您可以使用 for、while 或 do-while 结构来重复循环。以下程序展示了如何使用 C 语言中的"while"循环打印 100 个"a"的值 -
#include <stdio.h> int main () { // 局部变量定义 int a = 1; while (a <= 100){ printf("a: %d ", a); a++; } return 0; }
输出
运行此代码并检查输出 -
a: 1 a: 2 a: 3 a: 4 ..... ..... a: 98 a: 99 a: 100
如果某个步骤基于任何条件将程序流重定向到任何先前的步骤,则该循环为条件循环。一旦控制条件变为假,重复将立即停止。如果重定向没有任何条件,则为无限循环,因为代码块会永远重复执行。
C 循环的组成部分
要构成循环,以下元素是必需的 -
- 循环语句(while、dowhile 或 for)
- 循环块
- 循环条件
循环通常有两种类型 -
C 语言中的计数循环
如果循环被设计为重复一定次数,则它为计数循环。在 C 语言中,for 循环就是计数循环的一个例子。
C 语言中的条件循环
如果循环被设计为重复执行直到条件成立,则它就是条件循环。while 和 dowhile 结构可帮助您构建条件循环。
C 语言中的循环语句
C 语言编程提供了以下类型的循环来处理循环需求 -
序号 | 循环类型和说明 |
---|---|
1 |
当给定条件为真时,重复执行一个语句或一组语句。它在执行循环体之前测试条件。 |
2 |
多次执行一系列语句,并简化管理循环变量的代码。 |
3 |
它更像是一个 while 语句,只不过它在循环体的末尾测试条件。 |
4 |
您可以在任何其他 while、for 或 do-while 循环中使用一个或多个循环。 |
上述每种循环类型都必须根据具体情况选择合适的循环。我们将在后续章节中详细学习这些循环类型。
C 语言中的循环控制语句
循环控制语句会改变程序的正常执行顺序。当执行离开某个作用域时,所有在该作用域内创建的自动对象都将被销毁。
C 支持以下控制语句 −
Sr.No. | 控制语句 &说明 |
---|---|
1 |
终止 循环 或 switch 语句,并将执行转移到紧接着循环或 switch 语句的语句。 |
2 |
使循环跳过其主体的剩余部分,并在重新迭代之前立即重新测试其条件。 |
3 |
将控制权转移到带标签的语句。 |
break 和 continue 语句的作用截然不同。如果 goto 语句使程序跳转到后面的语句,则它充当跳转语句。如果 goto 语句将程序重定向到前面的语句,则它形成一个循环。
C 语言中的无限循环
如果条件永不为假,则循环变为无限循环。无限循环是指由于没有终止条件、终止条件永远不满足或循环被指示从头开始而无限重复的循环。
虽然程序员有可能故意使用无限循环,但这通常是新手程序员常犯的错误。
示例:C 语言中的无限循环
for 循环传统上用于创建无限循环。由于构成"for"循环的三个表达式都不是必需的,因此可以通过将条件表达式留空来创建无限循环。
#include <stdio.h> int main (){ for( ; ; ){ printf("This loop will run forever. "); } return 0; }
输出
通过运行此代码,您将获得一个无限循环,该循环将永远打印同一行。
This loop will run forever. This loop will run forever. ........ ........ This loop will run forever.
当条件表达式不存在时,假定其为真。您可能有一个初始化和增量表达式,但 C 程序员更常用 for(;;) 结构来表示无限循环。
注意 − 您可以通过按"Ctrl + C"键来终止无限循环。