循环

循环 属于 C++

12 个练习

关于 循环

循环用于重复执行某些逻辑。 最常见的两种类型是 while loop(while 循环,不定次数循环)和 for loop(for 循环,确定次数,也就是计数循环)。 还有一种 for each 循环,会在后面的概念中介绍。

基本语法

for loop 由一个头部和一个代码块组成,代码块里装着用花括号括起来的循环体。 头部由 3 个用分号 ; 分隔的部分组成:初始化语句、条件和另一个表达式。 这几部分都可以为空。

for (init-statement; condition; expression) {
  some_statement;
}
  • 初始化部分是一段只在循环开始前运行一次的代码。
  • 条件部分必须是一个求值结果为布尔值的表达式,用来控制循环何时停止。 只要这个条件的求值结果为 true,循环里的代码就会一直运行。 一旦这个表达式的求值结果为 false,循环就不会再执行任何一次迭代。
  • 表达式部分是一段会在每次迭代结束时运行的代码。

while loop 只要条件检查为 true,就会一直执行它的循环体。 下面的代码片段展示了如何把 for 循环改写成 while 循环。

init-statement;
while(condition) {
    some_statement;
    expression;
}

插曲:自增与自减

使用循环时,经常需要给计数器变量加 1 或减 1。 这种操作太常见了,所以有了专门的运算符:++ 和 --。

它们有前缀和后缀两种形式。 前缀形式会在语句使用该变量之前改变它,后缀形式则在之后改变。 大多数时候你可能想用前缀形式。

int a{3};
int b{--a};
// b is 2, a is now 2
int c{a++};
// c is 2, a is now 3

for 循环:一个例子

初始化部分通常用来设置一个计数器变量,条件部分检查循环应该继续还是停止,后置部分通常在每次重复结束时让计数器自增。

int sum{0};
for (int i{1}; i < 10; ++i) {
  sum += i;
}

这个循环会把从 1 到 9 的数字相加(包括 9)。

break 与 continue

在循环体内,你可以用 break 关键字彻底停止循环的执行:

int sum{2};
while(true) {
    sum *= 2;
    if (sum > 1000)
        break;
}
// sum is now 1024

与之相对,continue 关键字只停止当前这一次迭代的执行,然后继续下一次迭代:

int equal_sum{0};
for (int i{1}; i < 7; ++i) {
  if  (n%2 == 1) {
    continue;
  }
  equal_sum += i;
}
// equal_sum is now 12

注意:把 break 和 continue 的使用降到最少,或者完全避免使用,通常会让循环的逻辑更容易理解。

通过 GitHub 编辑 该链接会在新窗口或标签页中打开

学习 循环

练习已锁定

再解锁 4 个练习即可练习 循环