迭代益於進步
迭代是重複反饋的過程,目的是為了得到或逼近所需的結果。每一次對過程的重複稱為一次「迭代」,而每一次迭代得到的結果會作為下一次迭代的初始值。用生活中的例子來理解迭代:比如,你寫了一篇作文,拿給老師看,讓他給點建議,老師看完之後會給出評價,你根據評價在原來作文的基礎上進行修改,這就完成了一次迭代;你再拿修改後的作文給老師看,老師還是不滿意,於是你又進行了一次修改,這就是第二次迭代,可以看出第二次迭代的初始值是第一次修改的作文,這就是定義中的「每一次迭代得到的結果會作為下一次迭代的初始值」。那什麼時候迭代結束呢?老師說滿意了,你的作文就可以不用修改了,這時迭代就結束了。
一、在程序中的迭代
程序中的迭代是是一種不斷用變數的舊值遞推新值的過程,是循環的一種方式。比如用for循環計算1到100的總和,就用到了迭代。
#include <stdio.h>nnint main(){nnint sum=0; // 定義累加變數sum,並初始化為 0nnint i;nnfor(i=1; i<=100; i++) /* i初始值為1,i++等價於i=i+1,所以當i小於等於100時,每循環一次,i就加一 */nn{nn sum = sum + i; // 將累加的和保存在累加變數sum中nn}nnprintf("%dn", sum); // 輸出1到100之和nn}n
可看出,這個程序中有兩個變數的迭代:
1. i的迭代,每循環一次i的值就加一,並放到i中作為下一次迭代的初始值;
2. 累加變數sum的迭代,計算出sum和i的結果,把結果又放到sum當中,作為下一次計算的初始值。
用程序框圖來表示,程序的迭代過程就更清晰了。
迭代結束的標誌是i >100的時候。
二、互聯網產品中的迭代
互聯網產品通常是指網站或者APP。要理解迭代,就要先知道互聯網產品的開發流程。產品開發流程可大致理解為第一步是做市場調研確定目標用戶的需求,產品經理根據需求寫出需求文檔,設計師根據需求文檔設計出產品的樣子和功能,然後程序員根據設計來編程,把夢想變成現實,做出一個最初的產品,測試工程師不斷地調試產品,測出程序的bug,程序員再修改bug,直到測試沒有出問題,產品就可以正式上線,推出市場了。這就是一個APP或網站誕生的大概流程。
沒有事情是完美的,產品開發也不例外。產品發布上線之後,會出現一些問題、用戶也會提出更多的要求,所以要根據這些問題和需求來完善產品,相當於重複了一次上面講的開發流程,完善之後推出新的版本,這就完成了一次迭代。比如,一個APP的版本更新就是一次迭代的成果。
三、迭代對我們有什麼用呢?
平常如果能應用好迭代這個方法,將有利於我們的進步。比如,每次考試之後,老師會督促我們做好錯題本,避免下次考試再錯同一個題型,這也是一種迭代。在編程少年網站,很多同學會做一些遊戲作品發布出來,但大部分同學發布完之後就完事了。但一個人的能力是有限的,遊戲可能會存在一些隱藏的問題,所以我們可以動用眾人的力量,把遊戲作品分享到QQ空間或微信,讓更多的人來玩你的遊戲,他們在玩的過程中會發現一些問題,向你提出建議,這時你就可以根據這些建議來完善遊戲代碼,這也是一種迭代。
附一項驕傲的聲明:編玩邊學擁有全球領先的「在線編程——手機分享」核心技術,小朋友們在這裡5分鐘就可以編出精彩手機遊戲,然後掃碼傳播出去!你在編玩邊學創作的所有Scratch作品能夠發送到QQ空間、朋友圈,都是基於這項專利的喲~
以上內容轉載自編程少年青少年編程愛好者學習交流社區 - 編程少年
今日原創遊戲推薦:大戰苦力怕!0.20
遊戲創作者:張子睿
PS:編程少年社區中的原創遊戲是孩子們自己的作品,請點入鏈接並準備打分或評論的知友考慮到這一點,並多給予鼓勵,謝謝大家。
推薦閱讀:
※給妹子講python--16生成器的使用
※AP演算法中兩個參數的交替過程怎麼樣通俗的理解?
※「遞歸」和「迭代」有哪些區別?
※c++ 二叉樹的中序遍歷(非遞歸實現)是哪裡出錯了?
※客戶端產品迭代周期為多長時間比較合適?