这个怎么做啊,为难我这个菜菜

随机生成5名同学的学号(1-44),打印其中最大的值,分别用for,while,do-while,语句完成

    /*for*/
    for(int i=0;i<5;i++){
        int ran1 = r.nextInt(100);//定义一个随机数
        arr[i]=ran1;//给数组赋值
    }
    /*while*/
    int i=0;
    while(i<5){
        int ran1 = r.nextInt(100);//定义一个随机数
        arr[i]=ran1;//给数组赋值
        i++;
    }
    /*do-while()*/
    int a=0;
    do{
        int ran1 = r.nextInt(100);//定义一个随机数
        arr[a]=ran1;//给数组赋值
        a++;
    }while (a<5);
    Arrays.sort(arr);//调用函数判断出最大数
    System.out.println(arr[arr.length-1]);//输出最大数

考虑学员编号不能重复

 public static void main(String[] args) {
        List<Integer> studentsList = new ArrayList<>();
        Map studentsMap = new HashMap();
        // for
        for (int i = 5;  i >0 ; ) {
            int num = (int) (Math.random()*44+1);
            if (studentsList.size() < 5 && !studentsMap.containsKey(num)) {
                studentsList.add(num);
                studentsMap.put(num,num);
            }else{
                break;
            }
        }
        // while
        studentsList = new ArrayList<>();
        studentsMap = new HashMap();

        while (studentsList.size() < 5 ){
            int num = (int) (Math.random()*44+1);
            if(!studentsMap.containsKey(num)){
                studentsList.add(num);
                studentsMap.put(num,num);
            }
        }
        // do-while
        studentsList = new ArrayList<>();
        studentsMap = new HashMap();
        do{
            int num = (int) (Math.random()*44+1);
            if(!studentsMap.containsKey(num)){
                studentsList.add(num);
                studentsMap.put(num,num);
            }
        }while (studentsList.size() < 5);
          Integer[] arr = (Integer[]) studentsList.toArray(new Integer[0]);
        Arrays.sort(arr);//调用函数判断出最大数
        System.out.println(arr[arr.length-1]);//输出最大数
    }

如有帮助请采纳

public static void main(String[] args) {
        List<Integer> studentNumber = new ArrayList<>();
        //for循环
        for(int i = 0; i < 5 ; i++) {
            Integer number = generateNumber(44,1);
            //去掉重复的随机数
            if( !studentNumber.contains(number)) {
                studentNumber.add(number);
            }else {
                //重复后,不计入本次循环次数
                i--;
            }
        }
        Collections.sort(studentNumber);
        System.out.println("for循环");
        System.out.println(studentNumber);
        System.out.println(studentNumber.get(4));


        studentNumber.clear();

        //while
        int length = 0;
        while (length < 5) {
            Integer number = generateNumber(44,1);
            //去掉重复的随机数
            if( !studentNumber.contains(number)) {
                studentNumber.add(number);
                length ++;
            }
        }

        Collections.sort(studentNumber);
        System.out.println("while循环");
        System.out.println(studentNumber);
        System.out.println(studentNumber.get(4));

        studentNumber.clear();

        //do while
        length = 0;
        do{
            Integer number = generateNumber(44,1);
            //去掉重复的随机数
            if( !studentNumber.contains(number)) {
                studentNumber.add(number);
                length ++;
            }
        }while (length < 5);
        Collections.sort(studentNumber);
        System.out.println("do - while循环");
        System.out.println(studentNumber);
        System.out.println(studentNumber.get(4));

    }

    private static Integer generateNumber(int max,int min){
        int r = (int)(Math.round( Math.random() * (max-min) )+min);
        return r;
    }