以用来描述一种特定形式的具有可变状态的重复。在第一种意义下，递归是"迭代"的一个例子，但是通常使用一种"递归式的表达"。比如用0!=1，n!=n*(n-1)!来表示阶乘。而"迭代"通常不是这样写的。而在第二种（更严格的）意义下，迭代描述了在指令式编程语言中使用的编程风格。与之形成对比的是递归，它更偏向于声明式的风格。这里是一个依赖于破坏性赋值的迭代的例子，以指令式的虚拟码写成：在这个程序片段中，变量i的值会不断改变，依次取值1、2和3。这种改变赋值——或者叫做"可变状态"——是迭代的特征。