Web | Coding | Blog | SOHO

[Java]第七章:函數( Part II )

函數可以簡化主程式的結構,節省撰寫相同的程式碼

參考書籍:Java 7 教學手冊

要傳遞一維陣列到函數裡,只要指名傳入的引數是一個陣列即可。

範例示範:

public class ch07_5 {

	public static void main(String[] args) {
		int score[]={9,14,6,18,2,10};
		largest(score);
	}

	public static void largest(int arr[]){
		int max=arr[0];
		for(int i=0; i<arr.length; i++)
			if(max<arr[i])
				max=arr[i];
		System.out.println("largest num = "+max);

	}
}

OUTPUT:
largest num = 18

如果要傳遞陣列到函數裡,只要在函數內填上陣列的名稱即可。

如以上範例的第五行:

largest(score);

那麼如果是傳遞二維陣列呢?

與一維陣列相當類似,在此再舉個範例:(延伸 class ch07_5 )
範例示範:

public class ch07_6 {

	public static void main(String[] args) {
		int score[][]={{9,14,6,18,2,10},{18,32,65,27,30,17}};
		largest(score);
	}

	public static void largest(int arr[][]){
		int max=arr[0][0];
		for(int i=0; i<arr.length; i++)
			  for(int j=0; j<arr[i].length; j++)
				  if(max<arr[i][j])
					  max=arr[i][j];
		System.out.println("largest num = "+max);

	}
}

OUTPUT:
largest num = 65

在主程式main 當中,score函數改為二維函數;
而相同在函數內填上陣列名稱;

在函數largest 中,記得改為接收二維陣列 (本範例為整數陣列,固宣告二維整數陣列)。


傳回陣列函數該注意的是:如果為整數陣列,必須在函數前加上int[] ;若是二維陣列則加上int[][],以此類推。

範例示範:

public class ch07_7 {

	public static void main(String[] args) {
		int a[]={9,14,6,18,2,10};
		int b[];
		b=add5(a);
		for(int i=0; i<a.length; i++)
			System.out.print(b[i]+" ");
		System.out.println();
	}

	public static int[] add5(int arr[]){  //請注意紅字處
		for(int i=0; i<arr.length; i++)
			arr[i]+=5;
		return arr;
	}

}

OUTPUT:
14 19 11 23 7 15

問題思考:如果也把a陣列也印出,可以發現陣列a、b的值完全相同;這是為什麼?


這章就到此結束囉,本學習系列也算告一段落了。
接下來將會是 Java 新的學習系列:類別。

為什麼會將它獨立出一個新的系列呢?因為這可是 Java 的重頭戲!!


參考書籍:Java 7 教學手冊
Java 學習日誌 (點此閱讀所有 Java日誌)

謝謝各位的支持,請期待下一系列的分享囉~
有任何問題也歡迎在底下留言,或到fb粉絲專頁發訊息給站長一起討論。


如果您喜歡本站的文章,也歡迎將文章分享轉貼並註明出處;
另外還未按讚粉絲專頁的朋友,也可以動動手點擊追蹤最新的文章唷:

Comments

comments

如果您喜歡本站的文章,也歡迎將文章分享轉貼並註明出處;另外還未按讚粉絲專頁的朋友,也可以動動手點擊追蹤最新的文章唷:


© 2017 4xCode™ | Design:SC 站長