C语言的for,while和do-while循环简介
C为我们提供了三种执行循环的方法:for循环,while循环和做while循环。它们都允许您迭代数组,但有一些差异。让我们详细了解它们。
对于循环
执行循环的第一种方法(可能是最常见的方法)是for循环。
使用for
关键字,我们可以定义规则循环,然后提供将要重复执行的块。
像这样:
for (int i = 0; i <= 10; i++) {
/* instructions to be repeated */
}
这(int i = 0; i <= 10; i++)
块包含3部分循环详细信息:
- 初始条件(
int i = 0
) - 考试 (
i <= 10
) - 增量(
i++
)
我们首先定义一个循环变量,在本例中为i
。i
是用于循环的通用变量名,以及j
用于嵌套循环(另一个循环内的一个循环)。这只是一个约定。
将该变量初始化为0值,并完成第一次迭代。然后按照增量部分的说明递增(i++
在这种情况下,增加1),然后所有循环重复进行,直到达到数字10。
在循环主块中,我们可以访问变量i
知道我们在哪一次迭代。该程序应打印0 1 2 3 4 5 5 6 7 8 9 10
:
for (int i = 0; i <= 10; i++) {
/* instructions to be repeated */
printf("%u ", i);
}
循环也可以从较高的数字开始,而从较低的数字开始,如下所示:
for (int i = 10; i > 0; i--) {
/* instructions to be repeated */
}
您还可以将循环变量增加2或另一个值:
for (int i = 0; i < 1000; i = i + 30) {
/* instructions to be repeated */
}
While循环
While循环比写一个简单for
循环,因为这需要您做更多的工作。
而不是像您在循环中那样在开始循环时就先定义所有循环数据。for
循环,使用while
您只需要检查条件:
while (i < 10) {
}
假设i
已经定义并使用值初始化。
这个循环将是无限循环除非您增加i
变量在循环内的某个点上。无限循环是不好的,因为它将阻塞程序,其他任何事情都不会发生。
这是“正确”的while循环所需要的:
int i = 0;
while (i < 10) {
/* do something */
i++;
}
对此有一个例外,我们将在一分钟内看到它。以前,让我介绍一下do while
。
做while循环
虽然循环很棒,但是有时候您需要做一件事:您总是要执行一个块,然后可能是重复。
这是通过使用do while
关键字,其方式与while
循环,但略有不同:
int i = 0;
do {
/* do something */
i++;
} while (i < 10);
包含/* do something */
注释始终至少执行一次,而不管底部的条件检查如何。
然后,直到i
小于10,我们将重复执行该代码块。
打破循环使用break
在所有C循环,无论循环设置的条件如何,我们都可以在任何时间点立即退出循环。
这是通过使用break
关键词。
在许多情况下这很有用。您可能要检查变量的值,例如:
for (int i = 0; i <= 10; i++) {
if (i == 4 && someVariable == 10) {
break;
}
}
拥有此选项可以突围而出对于以下人员特别有意思while
循环(和do while
),因为我们可以创建看似无限的循环,当条件发生时结束,并在循环块中定义此循环:
int i = 0;
while (1) {
/* do something */
i++;
if (i == 10) break;
}
在C中有这种循环是很常见的。
免费下载我的C手册
更多clang教程:
- C编程语言简介
- C变量和类型
- C常数
- C操作员
- C条件句
- 如何使用C中的循环
- C数组简介
- 如何在C中确定数组的长度
- C字符串简介
- 如何在C中查找字符串的长度
- C指针介绍
- 用C遍历数组
- C中的布尔值
- C函数简介
- 如何在C中使用NULL
- C语言中的基本I / O概念
- C中的双引号与单引号
- 如何从C函数返回字符串
- 如何解决C语言中的隐式声明库函数警告
- 如何在C中检查字符值
- 如何在C语言中使用`printf()`打印百分比字符
- C转换说明符和修饰符
- 如何在C中访问命令行参数
- C中变量的范围
- 可以在C中嵌套函数吗?
- C中的静态变量
- C全局变量
- C语言中的typedef关键字
- C枚举类型
- C结构
- C头文件
- C预处理器