16.1 选择循环的种类

文章目录
  1. 1. 选择循环的种类
  2. 2. while 的使用
  3. 3. 带有退出的循环·使用
  4. 4. for 循环的使用
  5. 5. foreach 循环的使用

选择循环的种类

我们在选择哪种循环作为控制结构时,需要根据循环的灵活度和检查位置做判断

语言 循环的种类 灵活度 检查位置
C,C++,C#,Java For 灵活 开始
While 灵活 开始
do-while 灵活 结尾
foreach 严格(对容器类中的每个元素都要执行) 开始

note:

  • 灵活度:循环的次数是否是一定的?是否需要在每次迭代时检查循环有没有完成?
  • 检查位置:在检查位置前面的部分至少会执行到一次

while 的使用

while 循环的流程

注意这样一个事实,如果在一次循环体的执行过程中,就算执行到中间处条件变为假,也不会立即跳出这个循环,剩余的代码还是会执行。执行完后再次在入口处检查条件,发现条件为假,从而退出循环。

也就是只在入口处做检测,若检测通过,则可完整执行一次循环体里的过程

带有退出的循环·使用

带有退出的循环(Loop-with-exit)里,终止条件出现在循环的中间。

(其实也就是终止条件的检测放在何处的问题,若检测通过,则可完整执行一次后面的代码)

在 C++、C、Java 中可以用结构化的 while 和 break 来模拟

toNote

(有了一个很好的想法,黑白块)

作用:消除重复代码,容易维护(重复代码的弊端是在修改时可能会忘了另一个地方)

for 循环的使用

for 循环是执行次数固定的循环,应该用 for 循环来执行不需要循环内部控制的简单操作

for 循环就是为了简单的用途,无需在循环内部做任何事情去控制它,更复杂的情况请用 while

  • 何谓简单用途?
    • 简单的递增递减,如对某容器内的元素进行迭代
  • 何谓复杂的情况?
    • 要在循环内部做一些事情来控制循环,如设置条件从而跳出循环

所以,如果想在内部控制循环,不要通过在 for 循环里直接修改下标这一方式,而是改用 while 循环

深入阅读:“Writing Solid Code”

foreach 循环的使用

适用于对数组或其他容器的各项元素进行操作,优势在于消除了人工进行算术处理的出错可能