随机生成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;
}