- (1)一定要注意退出循环时,一些变量的值的变化情况,尤其是内部含有自加自减等操作;
通过本文,我们是否可以得出 while
循环比 for
循环更自由的结论?也即 for
循环能做的事,while
循环都可做,但while
循环能做的事,for
循环未必能做。
Python 语言对
for
循环的支持其实是不如 C 语言的,Python 中的for
循环,更多的是遍历,而无判断的意味,而while
循环天然的是判断;
while
循环天然的具有判断逻辑,for
循环需在循环内部添加判断逻辑,不满足则break
;while
循环对循环变量的更新放在循环的内部,可自行指定,而for
循环天然内置了一种自加 1 的动作;
二者的区别可通过一个实例进行集中体现:
# 归并两个已排序的数列
def merge(l1, l2):
l3 = []
i, j = 0, 0
n1, n2 = len(l1), len(l2)
while i < n1 and j < n2:
if l1[i] <= l2[j]:
l3.append(l1[i])
i += 1
else:
l3.append(l2[j])
j += 1
if i < j:
l3.extend(l1[i:])
else:
l3.extend(l2[j:])
return l3
1. 形式上稍微有些古怪的 for 循环
static int NextPrime(int N) {
if (N % 2 == 0) ++N;
int i;
for (; ; N += 2)
}
更为重要的是,对于一个 for 循环而言,甚至没有指定循环退出的条件,就好比:while (true)
;