C语言为我们提供了三种执行循环的方法:for 循环、while 循环和do 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 循环更简单,因为它需要你多做一点工作。
使用while ,你只需检查一个条件,而不是像在for 循环中那样,在开始循环时预先定义所有的循环数据。
这假定i 已经被定义并初始化了一个值。
这个循环将是一个无限循环,除非你在循环中的某个点上增加i 这个变量。无限循环是不好的,因为它将阻塞程序,其他的事情都不能发生。
这就是你对一个 "正确的 "while 循环的需要。
int i = 0;
while (i < 10) {
/* do something */
i++;
}
这有一个例外,我们将在一分钟内看到它。在此之前,让我介绍一下do while 。
做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语言中,有这样的循环是相当普遍的。