int[] array = new int[4]; for(int i = 0; i < array.length; i++){ array[i] = (int)(Math.random() * 10); for(int j = 0; j < i; j++){ if(array[i] == array[j]){ //相同就重取隨機數 i--; break; } } }
以上是一段取四個不相等隨機數的代碼,這里的 i-- 是這段代碼的核心。
在內層for循環中,一旦 array[i] == array[j] 就執行 i-- 。這意味着外層for循環在本次循環結束之后,i++會因為i--的出現而 不執行本次自增,相當於重新執行上次循環。從而達到了取 不相等 隨機數的功能。
對於兩變量互換數值的問題,相信大家已經遇到不少。這里提出另外兩種方法:
方法一:
a = a + b; b = a - b; a = a - b;
方法二:
a = a ^ b; b = a ^ b; a = a ^ b;