如何在C语言中进行循环操作

233 阅读2分钟

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++)

我们首先定义一个循环变量,在本例中命名为ii 是一个用于循环的通用变量名称,与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语言中,有这样的循环是相当普遍的。