Function2

//練習 :函數實現兩個數的互換(做不到)
public static void exchange(int x, int y){// x=n1
int tmp = x;
x = y;
y = tmp;

x+=10;
}

public static void exchange2(int[] arr){// x=n1
int tmp = arr[0];
arr[0] = arr[1];
arr[1] = tmp;

}

//練習: 將一個char 數組中所有元素置爲A
public static void fun1(char[] arr){ //arrT=arr
// char[] tmpArr = {'a','b','c','d'};
// arrT = tmpArr;
for (int i = 0; i < arr.length; i++) {
arr[i] = 'A';
}
}

//下層函數 需要向上層返回多個信息
//練習:計算int數組中最大值 和最小值的下標
public static void findMinMax(int[] arr, int[] result){
int min = 0;
int max = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > arr[max]) {
max =i;
}

if (arr[i] < arr[min]) {
min = i;
}

}

result[0] = min;
result[1] = max;
}

//返回值類型爲引用類型
public static int[] fun2(){
int x=10;
//函數內部聲明的引用類型變量
// 隨着函數的結束 引用本身會被銷燬
// 但若 有別的 東西 引用那個實際對象
// 實際對象依然存在
int[] arr = new int[5];
arr[0] = -99;
return arr;
}

public static void main(String[] args) {
/*-----形式參數  實際參數 -----
* 函數內部對於形參的修改 不會影響實際參數 
* 形式參數拷貝 實際參數的值   你修改的是形式參數
* */
// int n1 = 5;
// int n2 = 3;
// exchange(n1, n2);
// System.out.println("n1:"+n1 +" n2:"+n2);
//
// int[] arr3= {6,8};
// exchange2(arr3);
// System.out.println(arr3[0]  +"  "+arr3[1]);

/*----值類型    (基本類型) int double ....
*   引用類型 數組 String
*      引用本身->實例對象
*   引用類型做實際參數
*    形參僅僅拷貝引用   實際的對象只有一個
*  ----*/
// char[] arr = new char[5];
// fun1(arr);
// for (int i = 0; i < arr.length; i++) {
// System.out.print("|"+arr[0]+"|");
// }

// int[] arr = {1,2,3,4,5,6};
// int[] result = new int[2];
// findMinMax(arr, result);//調用裏面都是實參
// System.out.println(result[0] +"  "+result[1]);

int[] arr =fun2();
System.out.print(arr[0]); 

}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章