恩...此篇只是要讓自己別再犯白癡的錯誤
簡單的題目.....
1.3個陣列存值 分別為X Y Z三陣列 各存固定的值
2.創立的函式名稱(add)相同 但參數不同
分別為
X陣列自己加自己
X陣列+Y陣列
X陣列+Y陣列+Z陣列
3.將執行結果寫在output函數裡面
先來說一下多載的定義
相同函式的名稱() 但參數的不同型態不同或者是參數數量不同都可以形成多載
以下狀況都成立
型態不同
public static void add(int x){}
public static void add(int[][] x){}
數量不同
public static void add(int x){}
public static void add(int x,int y){}
陣列宣告丟值這邊不贅述了....(這也是我今早考試耍笨的地方 忘記這邊的語法...)
int[][] X={{1,2,3},{4,5,6},{7,8,9}}; int[][] Y={{10,11,12},{13,14,15},{16,17,18}}; int[][] Z={{19,20,21},{22,23,24},{25,26,27}};接下來宣告方法 X陣列自己加自己(也可以直接*2)....只舉一個函式就夠了...其他一樣
int i=0,j=0; public static void add(int[][] X) { int i=0,j=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { sumbox[i][j]=X[i][j]+X[i][j]; } } output(sumbox); }
我知道很多人在這邊卡住了...如何輸出?也就是output....
其實很簡單 我只要在走訪陣列時...把值相加後
丟到額外的陣列裡面去做輸出動作就可以了
所以 我為了方便 我在最外層也就是public class那一層 宣告了全域變數
也就是說我不管在哪個函式裡面我都可以用這個陣列 他是共通的!
static int[][] sumbox=new int [3][3]; <==全域陣列
所以上面sumbox在走完陣列 並儲存相加後的值之後
呼叫output(sumbox)另外一個函式 把sumbox陣列裡面的值丟到output這個函式裡面做輸出
所以output為....
public static void output(int[][] M) { int i=0,j=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { System.out.print(M[i][j]+" "); M[i][j]=0; } System.out.println(""); } }正常輸出 以上.....
另外 每個函式內的參數名稱 都為區域變數 你愛取甚麼變數名稱其實隨意 重複也行
因為它是把你的值抓進來存成只在這個函式裏面的變數做運算而已
如:public static void output(int[][] 隨你取名子)
public class Javatest { static int[][] sumbox=new int[3][3]; public static void main(String args[]) { int[][] X={{1,2,3},{4,5,6},{7,8,9}}; int[][] Y={{10,11,12},{13,14,15},{16,17,18}}; int[][] Z={{19,20,21},{22,23,24},{25,26,27}}; add(X); System.out.println(""); add(X,Y); System.out.println(""); add(X,Y,Z); } public static void add(int[][] X) { int i=0,j=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { sumbox[i][j]=X[i][j]+X[i][j]; } } output(sumbox); } public static void add(int[][] X,int[][] Y) { int i=0,j=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { sumbox[i][j]=X[i][j]+Y[i][j]; } } output(sumbox); } public static void add(int[][] X,int[][] Y,int[][] Z) { int i=0,j=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { sumbox[i][j]=X[i][j]+Y[i][j]+Z[i][j]; } } output(sumbox); } public static void output(int[][] M) { int i=0,j=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { System.out.print(M[i][j]+" "); M[i][j]=0; } System.out.println(""); } } }
沒有留言:
張貼留言