在Java中傳遞參數的方法只有一種那就是傳值,所以在交換數值A B時假如直接用 A = B 的話,會發生以下狀況
由上圖可知,a b 沒有交換,反而是 a變成了b的值,而b還是b,
因為a = b 代表把b的值傳入a。
因此我們要用swap方法才可以完成交換的動作
概念是宣告另一個物件,在交換的過程將要交換的數暫放在那個物件。
方法如下
宣告整數c,並將a的值先放到c,再把b的值放到a,最後將c的值放到b,
即可完成交換的動作。
以下有一個洗牌的例子:有A-E五張牌,在每次程式執行執行洗牌的動作。
Step 1 建立String陣列 把A-E放入此陣列
Step 2 進入第一個for迴圈,其條件 int i = 0,表示從第零項開始,i代表地i項; i < array.length,代表i會小於陣列的長度; 最後i++,產生完一個亂數就加1,往下一項產生。並產生0-4的亂數,用random方法。
Step 3 用swap方法將產生的亂數進行交換,在for迴圈內,直到4個亂數產生完。
Step 4 進入另一個for迴圈,條件一樣,符合的話印出洗牌結果。
程式全碼及執行結果如下: