- 變數和資料型別,賦值和輸出
- 算術運算
- 選擇結構
- 迴圈結構
- 函式定義,函式呼叫 <–
- 變數作用域
- 棧,程式執行的基石
- 物件導向
- 異常處理
- 語言提供的公用包
什麼是函式,為什麼有函式,大家可能有這樣的疑問。
舉一個例子來回答大家的疑問:比如一個財務軟體,裡面需要反反覆覆地把很多賬單加起來,過去一週的,過去一月的一年的。為了提高程式碼的複用性,我們把賬單相加這個功能封裝成一段獨立的小程式。當下次再面臨賬單相加時,就呼叫這段小程式。那麼這種封裝的形式就叫做“函式”
函式的格式
修飾符 返回值型別 函式名(引數型別 形式引數1,引數型別 形式引數2,…)
{
執行語句;
return 返回值;//有可能有return,有可能無return
}
函式的定義
我們參考函式的格式定義幾個函式
因為我們要在public static void main(String[] args) 中呼叫函式,所以函式也要定義成static。
static 修飾的方法我們稱之為靜態方法,屬於類級別,不是物件級別。他在類載入的時候就存在了。static 方法只能呼叫 static 方法
/**
* 本節講函式的定義和呼叫
* 同時也複習前面學習的內容
*/
public class FifthLesson {
/**
* 定義一個justPrintMax函式
* void指沒有返回值,該函式不會返回任何值
* @param a 引數a
* @param b 引數b
* @param c 引數c
*/
public static void justPrintMax(int a, int b, int c) {
/**
* 當呼叫者呼叫該函式
* 引數a,b,c會分別被傳值
* 然後進入函式體
*/
/**
* 定義一個int,變數名是max
* 把a的值賦值給max
*/
int max = a;
/**
* 如果b 大於 max,則
* 執行 max = b
* 此時 max是a,b兩者的最大值
*/
if (b > max) {
max = b;
}
/**
* 如果c 大於 max,則
* 執行 max = c
* 此時 max是a,b,c三者的最大值
*/
if (c > max) {
max = c;
}
/**
* 輸出max值,沒有返回
*/
System.out.println(max);
}
/**
* 定義一個getMax函式
* 此函式有返回值
* @param a 引數a
* @param b 引數b
* @param c 引數c
* @return 返回三者的最大值
*/
public static int getMax(int a, int b, int c) {
/**
* 新建一個int,變數名是max
* 把 a 賦值 給 max
*/
int max = a;
/**
* 如果 b 大於 max
* 則執行 max = b
*/
if (b > max) {
max = b;
}
/**
* 如果 c 大於 max
* 則執行 max = c
*/
if (c > max) {
max = c;
}
/**
* 返回max
*/
return max;
}
public static void main(String[] args) {
/**
* 呼叫justPrintMax函式
* 把3傳給a,5傳給b,2傳給c
*/
justPrintMax(3, 5, 2);
/**
* 呼叫getMax函式
* 把3傳給a,5傳給b,2傳給c
* 新建變數max
* 取函式返回值,傳給max
*/
int max = getMax(3, 5, 2);
System.out.println(max);
}
}
為什麼要用函式
- 使程式變得更簡短而清晰。
- 有利於程式維護。
- 可以提高程式開發的效率。
- 提高了程式碼的重用性。
總結
- 函式如果宣告成void則沒有返回值
- 使用函式之前,要先定義函式
- 使用函式要按函式的定義傳遞引數
作業
- 寫一個函式,輸入是String name, 比如輸入是“小楠”,輸出是 “我愛小楠”
- 寫一個函式,輸入語文,數學,英語三門課的成績,輸出三門課的平均分