热心市民鞠先生 2021-03-23 12:53 采纳率: 80%
浏览 99
已采纳

获取1-33之间的随机数,并且返还数组类型。这里的循环结果还是会出现重复的数字或者0,应该怎么改

package code;

import java.util.Random;

public class Code2 {
    public static void main (String[] args) {
        Random r = new Random();
        int[] s = new int[6];
        for (int i = 0; i < 6; i++) {
            
            int red = r.nextInt(33);
            //循环条件 遍历数组判断随机数是否在数组中
            for (int j = 0; j < s.length; j++) {
                if(s[j] == red || red == 0) {
                    continue;
                } else {
                    s[i] = red;
                }
            }
        }
        
        for (int i : s) {    
            System.out.println(i);
        }
    }
}
 

  • 写回答

6条回答 默认 最新

  • tkzc_shark 2021-03-23 13:59
    关注
    int red = r.nextInt(33) + 1;

    int nextInt(int num)         //随机返回一个值在[0,num)的int类型的整数,包括0不包括num

    public static int[] randomCommon(int min, int max, int n){  
        if (n > (max - min + 1) || max < min) {  
               return null;  
           }  
        int[] result = new int[n];  
        int count = 0;  
        while(count < n) {  
            int num = (int) (Math.random() * (max - min)) + min;  
            boolean flag = true;  
            for (int j = 0; j < n; j++) {  
                if(num == result[j]){  
                    flag = false;  
                    break;  
                }  
            }  
            if(flag){  
                result[count] = num;  
                count++;  
            }  
        }  
        return result;  
    }  
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?