學生在學習編程寫代碼時需要注意什麽?

一直以來,有不少學生在學習(xi) 編程後,都會(hui) 問我在編寫(xie) 代碼時需要注意什麽(me) ,怎麽(me) 樣才能讓代碼顯得更加清晰,變量定義(yi) 更合理,寫(xie) 起來更順暢。

這是一個(ge) 非常好的問題,養(yang) 成良好編碼習(xi) 慣的學生,會(hui) 覺得寫(xie) 起代碼來很順暢,整個(ge) 代碼條理清晰,寫(xie) 起來特別上頭,代碼編寫(xie) 過程很有成就感。

從(cong) 計算機運行效率的角度來說,代碼編寫(xie) 的好一些並不會(hui) 增加運行效率,但是它會(hui) 影響到人的心情。這就像寫(xie) 一篇作文,卷麵整潔,字體(ti) 工整的文章會(hui) 讓人感覺跟舒服,寫(xie) 的人也會(hui) 更有成就感。特別是有一些比較重要的邏輯,如果寫(xie) 的比較清晰,隔斷時間後再看起來,會(hui) 很快理解當時編寫(xie) 代碼的思路,不至於(yu) 讓人感覺很費解。同時,代碼共享給其他人,也比較方便其他人觀看。

另外,形成良好的編寫(xie) 習(xi) 慣後,會(hui) 避免很多低級的錯誤。很多學生寫(xie) 代碼的過程會(hui) 人為(wei) 的引入很多低級錯誤,例如變量名寫(xie) 錯了,有時候在 for 循環中,寫(xie) 錯一個(ge) 變量名稱會(hui) 導致各種奇怪問題,而且很難檢測出來。

那麽(me) 怎麽(me) 才算是好的代碼風格呢? 怎麽(me) 樣養(yang) 成好的代碼習(xi) 慣呢? 代碼風格問題涉及到的內(nei) 容很多,每種編程語言都有自己的編程風格,每家公司也會(hui) 製定自己的編碼標準。工程代碼中的代碼風格和算法中的代碼風格也並不完全相同,以下我們(men) 就以C++ 為(wei) 例,針對USACO算法競賽中的代碼風格做一個(ge) 介紹:

  1. 代碼各部分定義清晰:

    對於(yu) C++ 文件來說,一份代碼會(hui) 分成幾個(ge) 區域,包括頭文件引入、類型定義(yi) 、變量定義(yi) 、函數定義(yi) 等,即使代碼很簡單,也會(hui) 包括這幾個(ge) 部分,所以建議可以清晰的把這幾個(ge) 部分依次寫(xie) 出來,可以參考以下示例:

    熱愛編程,從(cong) 良好的編碼習(xi) 慣開始!

    上述代碼是一份很簡單的查詢數組中最大值的算法。把每個(ge) 部分的代碼放在應有的區域中,當遇到bug 時,很容易在固定區域中查詢相關(guan) 代碼的定義(yi) 。

  2. 變量定義(yi)

    在很多工程性代碼中,是不建議把變量定義(yi) 成全局的,但在算法編程中則是鼓勵這樣做的。主要的好處在於(yu) ,第一可以方便在各個(ge) 函數中訪問。第二全局變量默認是有初始化的,不容易產(chan) 生不必要的錯誤。第三有些比較大的數組,如果定義(yi) 在函數中可能會(hui) 導致堆棧空間不足。

    另外,一些臨(lin) 時變量,建議需要使用的時候再定義(yi) ,例如 for 語句的循環變量,直接定義(yi) 在 for 語句中是比較好的選擇,多個(ge) for 語句可以使用相同的循環變量,相互之間並不影響。

    關(guan) 於(yu) 變量命名方麵,建議在能夠表達具體(ti) 意義(yi) 的情況下,采用盡可能短的名稱。一些常常使用的變量名稱可以固定下來,例如循環變量,一般都使用 i,j,k 等。

  3. 模塊劃分

    在編寫(xie) 代碼的時候,同一邏輯的代碼可以緊湊些,不同邏輯的代碼則可以空一行,或者加一個(ge) 注釋,這樣能夠很方便區分各個(ge) 部分的代碼實現了什麽(me) 邏輯。對於(yu) 比較長的代碼,可以考慮分成多個(ge) 函數,每個(ge) 函數盡量隻實現邏輯單一的功能。

  4. 關(guan) 鍵模塊注釋

    算法的一些比較關(guan) 鍵的邏輯可以加一些注釋,例如整體(ti) 算法的思路,算法中關(guan) 鍵的某一個(ge) 步驟等。寫(xie) 注釋的過程可以幫你進一步理順思路,並且增加注釋後,後續如果要修改,也能很快理解之前的思考邏輯。

很多計算機高手在編碼上都是有潔癖的,喜歡整潔,簡短,清晰的代碼風格。好的代碼習(xi) 慣,也會(hui) 讓人在編程時產(chan) 生成就感和愉悅感。為(wei) 了讓自己在後續的編碼過程中能夠更加舒暢,請盡早養(yang) 成好的編碼習(xi) 慣吧。

【競賽報名/項目谘詢+微信:mollywei007】

上一篇

全國青少年航天創新大賽介紹

下一篇

丹麥留學一年多少錢?衣食住行花費清單公布

你也可能喜歡

  • 暫無相關文章!

評論已經被關(guan) 閉。

插入圖片
返回頂部