本帖最后由 leiyingyin 于 2015-8-12 23:25 编辑
- import java.util.Random;
- class RandomNumber
- {
- public static void main (String[] args)
- {
- int[] arr = new int[5];
- //声明的第一个数不存在重复的问题,所以不管3721先添加到数组里
- Random random = new Random();
- arr[0] = random.nextInt(5);
-
- //从第二个数开始
- int arrIndex = 1;
- while(arrIndex != 5){
- int rand = random.nextInt(5);
- //设置标志值,遍历数组检查是否有重复的数
- //有重复则hasSame为true,没有重复则保留着默认值false,
- //这样遍历之后检查hasSame的值就可以知道有没有重复的数了
- boolean hasSame = false;
- for(int i=0;i<arrIndex;i++){
- if(rand == arr[i]){
- hasSame = true;
- }
- }
- //报告!捕获到一枚不重复的随机数,上交给国家(加入到数组中,并且数组下标+1)
- if(!hasSame){
- arr[arrIndex ] = rand;
- arrIndex ++;
- }
- //否则arrIndex不动,继续生成随机数来填这个坑
- }
-
- //输出数组检查是否正确
- for(int i = 0;i<arr.length;i++){
- System.out.print(arr[i]+" ");
- }
- }
- }
复制代码
输出结果:2 1 4 3 0
欢迎大家来吐槽我的代码~~~
|
|