1. 程式人生 > >for迴圈 與 while迴圈

for迴圈 與 while迴圈

  • (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)