迭代和循环有什么区别?

What is the difference between an iteration and a loop?

我正在在线学习 Cs50 哈佛大学,我在第 3 周,但是在观看视频时我注意到我的迭代和循环看起来是一样的,因为它们一遍又一遍地重复。但肯定有区别,否则他们不会对同一事物有两个名称。无论我重新观看视频多少次,我都找不到不同之处。请帮助我理解。

通常“循环”是指代码,“迭代”是指重复某些步骤的概念过程。在这种情况下,它们或多或少是相同的。此外,您可以使用“迭代”来指代循环中的单个重复,这赋予它不同的含义。

第一次使用“迭代”的例子是:

You can print a linked list either by using iteration or recursion. If you use iteration, simply create a while-loop that propagates a "current" node through the list and stops when it becomes NULL.

以及引用特定重复的示例:

The following loop outputs numbers 1 to 10 in reverse order. At the k-th iteration, 10-k+1 is printed:

for (i=10; i>=1; i--){
    printf("%d\n", i);
}

代码中的循环是 3 件事的组合。

  1. 条件或休息时间。 (它不会自行停止)
  2. 一个循环参数,索引
  3. 可重复的待办事项列表

比起你在谈论迭代。 迭代只是循环的 1 个实例。 所以你第一次循环是 运行 你在你身上 0 实例/迭代。 您的索引几乎每次都指向您的实例/迭代。

https://codingbat.com/doc/java-for-while-loops.html

https://www.programiz.com/c-programming/c-for-loop

此外,迭代不是基于条件而是基于事件。

希望我回答了你的问题,如果需要更多信息,请回复。

“循环”是指用于重复执行某些代码的语言结构。 (for 循环,while 循环等)

“循环”也可以指重复执行的代码。 (例如,“它陷入了循环。”)

迭代是重复做某事的过程。 (例如“这个循环遍历数组的元素。”)

一次迭代是一次循环。 (例如,“在 for 循环的第一次迭代中,i 将是 0。”)

这就是我的定义:

"Loop" - 一种控制流语句,根据提供的循环条件迭代循环体中的代码。它是一种语言结构,在 C 语言中我们有三种结构:forwhiledo-while.

"Iteration" - 在第一个演练 之后循环体内代码的一个具体演练。换句话说,循环体代码的单次重复执行。

在执行 looping/iterating 时(作为动词,它们确实可以看作是相等的),您重复循环体中的代码。每一次重复都是一次迭代

一个循环的目的是能够进行迭代。无法进行 迭代 循环构造是无用的。

因此,这两个术语密切相关,但并不相同。