C 语言中的循环:For、While、Do While 循环语句 [示例]

C 语言中的循环是什么?

C 语言中的循环语句执行一系列语句,直到指定的条件变为假。C 语言中的循环由两部分组成:循环体和控制语句。控制语句是某些条件的组合,指示循环体执行,直到指定的条件变为假。C 语言循环的目的是重复执行相同的代码多次。

C 语言中的循环类型

根据控制语句在程序中的位置,C 语言中的循环语句分为两种类型

1. 入口控制循环

2. 出口控制循环

在 C 语言的入口控制循环中,在执行循环体之前会检查条件。它也被称为预检查循环。

出口控制循环中,在执行循环体之后会检查条件。它也被称为后检查循环。

Types of Loops in C
示例循环

控制条件必须定义明确并指定,否则循环将无限次执行。不会停止执行并处理语句多次的循环称为无限循环。无限循环也称为“无尽循环”。以下是无限循环的一些特征

1. 未指定终止条件。

2. 指定的条件永远不会满足。

指定的条件决定是否执行循环体。

C 编程语言提供了三种类型的循环结构

1. While 循环

2. Do-While 循环

3. For 循环

序号。 循环类型 描述
1. While 循环 在 while 循环中,在处理循环体之前会评估条件。只有当条件为真时,循环体才会被执行。
2. Do-While 循环 在 do…while 循环中,条件总是在循环体之后进行评估。它也被称为出口控制循环。
3. For 循环 在 for 循环中,初始值只执行一次,然后每次迭代都会测试并比较计数器与固定值,在返回 false 时停止 for 循环。

C 语言中的 While 循环

While 循环是最直接的循环结构。C 编程语言中的 While 循环语法如下

C 语言中 While 循环的语法

while (condition) {
             statements;
}

这是一个入口控制循环。在 while 循环中,在处理循环体之前会评估条件。只有当条件为真时,循环体才会被执行。在执行完循环体后,控制会返回到开头,并检查条件是否为真,如果为真,则会执行相同的过程,直到条件变为假。一旦条件变为假,控制就会跳出循环。

退出循环后,控制会转到循环后面的语句。循环体可以包含多个语句。如果只包含一个语句,则不一定需要大括号。即使循环体中只有一个语句,使用大括号也是个好习惯。

在 while 循环中,如果条件不为真,则循环体一次都不会执行。这与我们稍后将看到的 do while 循环不同。

以下程序说明了 C 语言中 while 循环的示例

#include<stdio.h>
#include<conio.h>
int main()
{
	int num=1;	//initializing the variable
	while(num<=10)	//while loop with condition
	{
		printf("%d\n",num);
		num++;		//incrementing operation
	}
	return 0;
}

输出

1
2
3
4
5
6
7
8
9
10

上面的程序说明了 while 循环的使用。在上面的程序中,我们使用 while 循环打印了 1 到 10 的数字系列。

While Loop in C
C 语言中的 While 循环
  1. 我们初始化了一个名为 num 的变量,其值为 1。我们将打印从 1 到 10 的数字,因此该变量初始化为 1。如果要打印从 0 开始,请在初始化时赋值 0。
  2. 在 while 循环中,我们提供了一个条件(num<=10),这意味着循环将执行主体,直到 num 的值变为 10。之后,循环将终止,并且控制将跳出循环。
  3. 在循环体中,我们有一个打印函数来打印我们的数字,以及一个增量操作来增加循环每次执行的值。num 的初始值为 1,执行后将变为 2,在下一次执行时将变为 3。这个过程将继续,直到值变为 10,然后它将在控制台上打印系列并终止循环。

\n 用于格式化,表示值将打印在新行上。

C 语言中的 Do-While 循环

C 语言中的 do…while 循环与 while 循环类似,不同之处在于条件总是在循环体之后评估。它也被称为出口控制循环。

C 语言中 do while 循环的语法如下

C 语言中 Do-While 循环的语法

 do {
  statements
} while (expression);

正如我们在 while 循环中所看到的,只有在条件为真时,循环体才会被执行。在某些情况下,即使条件为假,我们也必须至少执行一次循环体。这种类型的操作可以通过使用 do-while 循环来实现。

在 do-while 循环中,循环体至少会被执行一次。在执行完循环体后,它会检查条件。如果条件为真,则会再次执行循环体,否则控制会转移出循环。

与 while 循环类似,一旦控制跳出循环,就会执行紧随循环之后的语句。

while 和 do-while 循环之间的关键区别在于,在 while 循环中,while 位于开头。在 do-while 循环中,while 条件位于末尾,并以分号(;)结束。

以下 C 语言循环程序说明了 do-while 循环的工作原理

下面是一个 C 语言 do-while 循环示例,用于打印数字 2 的乘法表

#include<stdio.h>
#include<conio.h>
int main()
{
	int num=1;	//initializing the variable
	do	//do-while loop 
	{
		printf("%d\n",2*num);
		num++;		//incrementing operation
	}while(num<=10);
	return 0;
}

输出

2
4
6
8
10
12
14
16
18
20

在上面的示例中,我们使用 do-while 循环打印了数字 2 的乘法表。让我们看看程序是如何打印出这个系列的。

Do-While loop in C
C 语言中的 Do-While 循环
  1. 首先,我们初始化了一个名为 'num' 的变量,其值为 1。然后我们编写了一个 do-while 循环。
  2. 在循环中,我们有一个打印函数,它将通过将 num 的值乘以 2 来打印系列。
  3. 每次递增后,num 的值将增加 1,并显示在屏幕上。
  4. 最初,num 的值为 1。在循环体中,打印函数将这样执行:2*num,其中 num=1,则 2*1=2,因此将打印值 2。这将一直进行,直到 num 的值变为 10。之后,循环将终止,并将执行循环之后的语句。在本例中为 return 0。

C 语言中的 For 循环

for 循环是 C 编程中更有效的循环结构。C 中 for 循环语法的通用结构如下

C 语言中 For 循环的语法

for (initial value; condition; incrementation or decrementation ) 
{
  statements;
}
  • for 循环的初始值只执行一次。
  • 条件是一个布尔表达式,在每次迭代后测试并比较计数器与固定值,在返回 false 时停止 for 循环。
  • 增量/减量以设定的值增加(或减少)计数器。

以下程序说明了 C 语言中 for 循环的示例

#include<stdio.h>
int main()
{
	int number;
	for(number=1;number<=10;number++)	//for loop to print 1-10 numbers
	{
		printf("%d\n",number);		//to print the number
	}
	return 0;
}

输出

1
2
3
4
5
6
7
8
9
10

上面的程序使用 for 循环打印了 1-10 的数字系列。

For loop in C
C 语言中的 For 循环
  1. 我们声明了一个 int 数据类型的变量来存储值。
  2. 在 for 循环中,在初始化部分,我们将变量 number 赋值为 1。在条件部分,我们指定了我们的条件,然后是增量部分。
  3. 在循环体中,我们有一个打印函数,用于在控制台的新行上打印数字。我们将值 1 存储在 number 中,第一次迭代后,值将增加,变为 2。现在变量 number 的值为 2。将重新检查条件,由于条件为真,循环将被执行,并且它将在屏幕上打印 2。此循环将一直执行,直到变量的值变为 10。之后,循环将终止,并且将在屏幕上打印 1-10 的系列。

在 C 语言中,for 循环的每个部分都可以有多个用逗号分隔的表达式。

例如

for (x = 0, y = num; x < y; i++, y--) { 
  statements; 
}

此外,我们可以通过添加分号来跳过初始值表达式、条件和/或增量。

例如

int i=0;
int max = 10;
for (; i < max; i++) {
  printf("%d\n", i);
}

请注意,循环也可以嵌套,其中有一个外部循环和一个内部循环。对于外部循环的每次迭代,内部循环都会重复其整个周期。

考虑以下具有 for 循环中多个条件的示例,该示例使用 C 语言中的嵌套 for 循环来输出乘法表

#include <stdio.h>
int main() {
int i, j;
int table = 2;
int max = 5;
for (i = 1; i <= table; i++) { // outer loop
  for (j = 0; j <= max; j++) { // inner loop
    printf("%d x %d = %d\n", i, j, i*j);
  }
  printf("\n"); /* blank line between tables */
}}

输出

1 x 0 = 0
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5

2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10

for 循环的嵌套可以进行到任何级别。嵌套循环应该充分缩进以使代码可读。在某些 C 版本中,嵌套最多限制为 15 个循环,但有些版本提供更多。

嵌套循环主要用于数组应用,我们将在后续教程中介绍。

C 语言中的 Break 语句

break 语句主要用于 switch 语句。它对于立即停止循环也很有用。

我们考虑以下程序,该程序引入了一个 break 来退出 while 循环

#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
  if (num == 3)
    break;
  printf("%d\n", num);
  num--;
}}

输出

5
4

C 语言中的 Continue 语句

当您想跳到下一次迭代但仍保留在循环中时,应使用 continue 语句。

例如

#include <stdio.h>
int main() {
int nb = 7;
while (nb > 0) {
  nb--;
  if (nb == 5)
    continue;
 printf("%d\n", nb);
}}

输出

6
4
3
2
1

因此,值 5 被跳过。

选择哪种循环?

选择循环对程序员来说一直是一项艰巨的任务,要选择循环,请执行以下步骤

  • 分析问题并检查它是否需要预测试或后测试循环。
  • 如果需要预测试,请使用 while 或 for 循环。
  • 如果需要后测试,请使用 do-while 循环。

摘要

  • 定义 C 语言中的循环:循环是任何编程语言的关键概念之一。C 语言中的循环是使用条件语句实现的。
  • C 语言中的循环控制语句块会执行多次,直到条件变为假。
  • C 语言中的循环有两种类型:入口控制和出口控制。
  • 列出 C 语言中的各种循环控制指令:C 编程提供了 1) while 2) do-while 和 3) for 循环控制指令。
  • C 语言中的 For 和 while 循环是 C 语言中的入口控制循环。
  • Do-while 是 C 语言中的出口控制循环。