函數可以幫助進行模塊化設計。
前提條件就是對問題域,分析找出組成問題域的關鍵點(子問題)。
分而治之。以大化小。
函數的參數:
函數運算時需要參與運算的值(外部的),被稱為參數。
函數的參數是主調函數與被調函數進行數據傳遞的主要渠道,
函數頭上的塊級注釋其實就是對函數的簡單說明,在調用時會出現提示,提示中的消息就是注釋的內容。
形參和實參
形參是函數定義時出現,主要是用於約束傳入數據的類型
實參是函數被調用時出現,主要是按照形參的約束傳遞數據。
實參是受到形參的約束的。這個約束主要是體現在數據類型上。
為啥叫形參列表或實參列表,是因為,函數定義時對參數的個數並沒有限制,因此把這種就稱為:形參列表或實參列表。
參數傳遞時是受到形參的約束,除了數據類型的約束外還有參數數量的約束。
形參還有順序的約束,實參一定要和形參的順序是一致的。
在形參數據類型相同的情況下,順序並不會被檢測。只有形參的數據類型不一樣的情況下才會對實參的順序檢測。
當實參的數據類型和形參的數據類型不一致時必須要保證實參是可以隱式轉換或顯示轉換的才行,否則就會出錯。
===============================================
參數傳遞的方式:
1、值傳遞:就是將傳入的值復制一份,然后傳入到函數中,這種是默認傳遞方式。
2、引用傳遞:需要ref關鍵字,作用是將值的內存地址專遞到函數中。這種傳遞方式也稱為:引用傳遞
=====================================
函數的返回值
就是函數在執行完畢后將執行結果返回給主控函數,主控函數可以隨意使用。
函數的返回值不是必須的,而是根據實際需要得來。
語法:
[訪問修飾符] [static] 返回值類型 函數名稱([形參列表]){函數體;}
其中返回值類型:
如果沒有返回值是void的
如果有返回值則是具體的數據類型:包括已知的任意類型(已知的任意類型是指當前項目中可以使用的任意類型)
返回值使用的語法:
{
//函數體;
return 和函數定義同類型數據值;
}
函數在執行中一旦遇到return語句就表示函數執行完畢,將控制權交還給主控函數。
------------------------------
例子說明:
主函數中首先調用設置窗口的函數,然后調用菜單函數,菜單函數調用計算函數
Main---》SetWindowSize
|
|__>>Menu--->>Calculation
=================================
帶有返回值的函數調用形式:
數據類型 變量=被調用函數(實參);//這里的變量的數據類型必須和被調函數的數據類型一致
被調函數(實參);//返回值無用處
帶返回值的函數只能有一個返回結果(每次)
方法簽名(函數簽名):[訪問修飾符] [static] 返回子類型 函數名稱(形參列表)
----------------------------
注意:
函數如果定義了形參,那么在調用時必須按照形參列表中的參數個數、順序、數據類型來傳入具體的實參