函式是所有程式中最重要的單位,無論是面向過程還是物件導向語言。怎樣寫好函式非常重要。下面是我看書還有結合自己的經驗總結的:
首先,函式的書寫要遵循乙個很重要的原則:短小精悍,即語句要簡短,功能要單一,盡量滿足乙個函式只做一件事情的原則。
下面就具體函式的書寫過程:
(1) 確定函式返回型別,void int bool
還是等等?暫時不確定設定為空
void
;(2) 函式名稱:函式名稱要滿足知名知意的原則,還要注意字母的大小寫,例如快速排序的函式名一般quicksort
,至少我暫時找不到更適合的了!
(3) 函式的引數:有些函式沒有引數,即為空;但是函式的功能一般是輸入資料,返回處理結果,輸入的資料即為引數,例如對乙個陣列中的資料排序的函式一般要有兩個引數(陣列,陣列長度),例如quicksort
(int a
,int length
);(4) 函式的變數:首先變數名也要遵循知名知意以及字母大小寫的原則,這個我在後面的例子中會有;
(5) 函式邏輯實現:這是函式的核心,即演算法描述,首先要清楚演算法的實現過程。最常用的也就是for while if
三種基本語句,選擇合適的語句很重要。迴圈語句個人認為有時候經常會糾結
>=
還是》,<=
還是<
,差乙個等號結果會受到很大的影響,必須很認真的思考。我一般會通過函式迴圈過程的前幾個和最後幾個來驗證一下程式的正確性;
(6) 執行測試函式:輸入引數,輸出結果,看是否正確,if
(正確)看(7);
else
檢查**修改。
(7) 重構:如果結果輸出正確,只能說明函式功能上實現了,並不說明是最優的,還要重新梳理**,使其精簡健壯更有效。
下面就舉個例項來說明一下:
函式**(c
語言):
1void usequicksort(int a,int
length)27
8void quicksort(int a,int first,int
last)
925 a[head]=temp;//
這一句很關鍵
26 quicksort(a,first,head-1);//
下面這兩句是遞迴呼叫該演算法實現整體排序
27 quicksort(a,head+1
,last);
28 }
好的**給人一種美的感覺,要努力寫出漂亮整潔的**。共勉。。。
如何寫好建構函式
王姍姍,華清遠見嵌入式學院 講師。在建立乙個物件時,常常需要做些初始化的工作,例如對資料成員賦初值。如果乙個資料成員未被賦初值,則它的值是不可預知的,保留了這些儲存單元的原狀,這就成為了這些資料成員的初始值。而我們知道,類的資料成員時不能在宣告類時初始化的,因為類並不是乙個實體,而是一種抽象型別,並...
演算法 如何理解遞迴,寫好遞迴函式
不是每個程式設計師天生對遞迴理解深刻,剛入大一時候,當別人寫出第乙個求最大公約數的遞迴函式時,對其多麼的驚嘆,竟然可以不用迴圈,竟然 可以這麼簡潔,確實遞迴在大多數情況下實現時候 很短,大部分人也知道遞迴,也能基本看懂遞迴,可是卻經常不知道怎麼寫,或者寫出來的遞迴經常死迴圈,寫演算法往往也是學的是套...
如何寫好簡歷
在簡歷控修改的簡歷中,最常見的問題就是簡歷太羅嗦,這並不是說簡歷的頁數太多,或者篇幅太多,而是內容太羅嗦,從標題往下讀,五行之內都看不到重點。這樣的簡歷別說是一天收到成百上千份簡歷的hr,隨便抓乙個路人甲乙丙都沒有耐心讀下去。有的同學會問,什麼是重點?我覺得我的簡歷都是重點,刪掉哪乙個都不行。那麼嘗...