W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
到目前為止我們只使用了C++內(nèi)置的函數(shù),然而也可以添加新函數(shù)。實(shí)際上我們已經(jīng)見過一個(gè)函數(shù)定義了:main。main這個(gè)函數(shù)名很特殊,因?yàn)樗硎境绦蜷_始執(zhí)行的地方,但main函數(shù)的語法形式和其它函數(shù)定義一樣:
void 函數(shù)名(參數(shù)列表) {
語句
}
你可以為自己的函數(shù)任意定義名稱,但不能命名為main或者其它C++關(guān)鍵字。參數(shù)列表指定了使用(或稱為調(diào)用)新函數(shù)所需要提供的信息(如果有的話)。
main函數(shù)定義中的空括號(hào)表示它不攜帶任何參數(shù)。我們首先要寫的幾個(gè)函數(shù)也是沒有參數(shù)的,語法形式如下:
void newLine() {
cout << endl;
}
此函數(shù)名為newLine,只有一個(gè)語句,用以輸出換行符,其中換行用特殊值endl表示。
在main函數(shù)中,我們可以像調(diào)用C++內(nèi)置函數(shù)一樣調(diào)用這個(gè)新函數(shù): void main () { cout << "First Line." << endl; newLine (); cout << "Second Line." << endl; }
這段程序輸出如下: First line.
Second line.
注意:輸出的兩行之間有多余的空行。我們要想在兩行之間出現(xiàn)更多的空行該怎么做呢?可以重復(fù)調(diào)用同一個(gè)函數(shù):
void main ()
{
cout << "First Line." << endl;
newLine ();
newLine ();
newLine ();
cout << "Second Line." << endl;
}
或者我們寫一個(gè)新函數(shù),命名為threeLine,作用是打印3個(gè)空行:
void threeLine ()
{
newLine (); newLine (); newLine ();
}
void main ()
{
cout << "First Line." << endl;
threeLine ();
cout << "Second Line." << endl;
}
對(duì)于這個(gè)程序,你應(yīng)該注意以下幾點(diǎn):
你可以反復(fù)調(diào)用同一處理過程,事實(shí)上這種做法是非常普遍、實(shí)用的。
你可以讓一個(gè)函數(shù)調(diào)用另一函數(shù)。在本例中,main函數(shù)調(diào)用threeLine,threeLine又調(diào)用newLine。同樣,這也是普遍、實(shí)用的做法。
在threeLine這個(gè)函數(shù)中,我一行寫了三條語句,這符合語法規(guī)范(記住,空格和空行通常不改變程序的意義)。然而更好的方式通常是每條語句獨(dú)占一行,這樣程序更易讀,我是為了節(jié)約篇幅才破壞了這條規(guī)則。
為什么我們值得費(fèi)力氣來創(chuàng)建這些新函數(shù)?到現(xiàn)在為止可能講的還不是很清楚。實(shí)際上原因有很多,本例只說明了兩點(diǎn):
創(chuàng)建新函數(shù)使你有機(jī)會(huì)給一組語句起個(gè)名字。函數(shù)將一個(gè)復(fù)雜的計(jì)算過程隱藏在一個(gè)簡(jiǎn)單指令背后,并使用英語單詞取代晦澀代碼,可以起到簡(jiǎn)化程序的作用。試問,newLine和cout << endl,哪個(gè)更清晰呢?
創(chuàng)建新函數(shù)能夠去除重復(fù)代碼,使程序更短小。例如,連續(xù)打印九個(gè)空行的一種簡(jiǎn)單做法是調(diào)用treeLine三次,那么連續(xù)打印27個(gè)空行你要怎么做呢?
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: