for迴圈:除累加計算之外,需要給迴圈變數賦初值1次,每次迴圈需要條件判斷1次,迴圈變數遞增或遞減計算1次,假設是n次迴圈,需要多執行1次賦值、n次判斷、n次遞增或遞減。
公式:除累加計算之外,只需要再進行一次賦值即可,就是寫起來麻煩。
遞迴:要呼叫至少n次函式,每次呼叫要進行判斷和對引數的遞減,還需要求累加,至少是n次判斷、n次遞增或遞減,還要執行n次函式呼叫,包含引數壓棧、現場保護,返回要恢復現場,要執行的語句多了去了。
因此最快的是公式,然後迴圈,最慢遞迴,如果是書寫簡單起見是反向由簡到煩。
向左轉|向右轉
擴充套件資料:
1.for
2.for
3. for迴圈中的"單次表示式"、"條件表示式"和"迴圈體語句"都是選擇項, 即可以預設成只剩下“;”的空語句, ";"不能預設的原因是編譯格式如此,缺省了編譯器不認識而會報錯。
省略了用來初始化的單次表示式時, 表示不對迴圈控制變數賦初值。
省略了條件表示式, 若不做其它處理則成為死迴圈。
省略了所有迴圈體, 則for語句不被其它形式處理時不產生任何作用。
for迴圈:除累加計算之外,需要給迴圈變數賦初值1次,每次迴圈需要條件判斷1次,迴圈變數遞增或遞減計算1次,假設是n次迴圈,需要多執行1次賦值、n次判斷、n次遞增或遞減。
公式:除累加計算之外,只需要再進行一次賦值即可,就是寫起來麻煩。
遞迴:要呼叫至少n次函式,每次呼叫要進行判斷和對引數的遞減,還需要求累加,至少是n次判斷、n次遞增或遞減,還要執行n次函式呼叫,包含引數壓棧、現場保護,返回要恢復現場,要執行的語句多了去了。
因此最快的是公式,然後迴圈,最慢遞迴,如果是書寫簡單起見是反向由簡到煩。
向左轉|向右轉
擴充套件資料:
1.for
迴圈中的變數可以是一個也可以是多個,不要侷限於一個變數處理到底,那樣有時會很單調,當程式適合把多個變數組成迴圈時,用多個for語句來表示就是有些浪費了!2.for
迴圈中語句可以為語句體, 語句體外加大括號"{}"將參加迴圈的語句括起來。 for迴圈的三個表示式都是逗號表示式,這樣來說,其實每個分號表示式可以由幾個逗號表示式構成,中間用",”隔開,最後以“;”結束。3. for迴圈中的"單次表示式"、"條件表示式"和"迴圈體語句"都是選擇項, 即可以預設成只剩下“;”的空語句, ";"不能預設的原因是編譯格式如此,缺省了編譯器不認識而會報錯。
省略了用來初始化的單次表示式時, 表示不對迴圈控制變數賦初值。
省略了條件表示式, 若不做其它處理則成為死迴圈。
省略了所有迴圈體, 則for語句不被其它形式處理時不產生任何作用。