编程练习(二十三)
要求:
1)要求通过定义带参带返回值的方法来实现。
2)通过参数传入数组的长度(例如长度为8),方法执行后返回赋值后的数组。
3)通过(int)(Math.random() * 100) 生成100以内的随机数。
注:Math类是用于进行算术操作的类,Math.random()生成0-1的浮点数。
任务:
1)定义一个带参带返回值的方法,实现输出随机数数组。
提示:
1.定义一个带参带返回值的方法,通过参数传入数组的长度,返回值为赋值后的数组
2.创建指定长度的整型数组
3.使用for循环遍历数组,通过Math.random()生成随机数并为数组成员赋值
4.使用return返回赋值后的数组
2)完成 main 方法
提示:
1.调用自定义方法,保存方法执行后返回的数组
2.使用Arrays.toString()将数组转换为字符串并输出,注意导入java.util.Arrays;
import java.util.Arrays; public class HelloJava { public static void main(String[] args) { HelloJava hello=new HelloJava(); // 调用方法并将返回值保存在变量中 int[] nums = hello.getArray(8); // 将数组转换为字符串并输出 System.out.println(Arrays.toString(nums)); } /* * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组 */ public int[] getArray(int length) { // 定义指定长度的整型数组 int[] nums = new int[length]; // 循环遍历数组赋值 for (int i=0;i<length;i++) { // 产生一个100以内的随机数,并赋值给数组的每个成员 nums[i]=(int)(Math.random()*100); } return nums; // 返回赋值后的数组 } }
运行结果:(数组元素为随机数)
[26, 36, 96, 55, 88, 96, 10, 26]
要求:
1)考试成绩已保存在数组scores中,数组元素依次为89,-23,64,91,119,52,73。
2)要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入。
3)要求判断成绩的有效性( 0-100 ),如果成绩无效,则忽略此成绩。
运行结果:
考试成绩的前三名为:
91
89
73
任务:
1)定义一个包含整型数组参数的方法,用来接收成绩数组,进行成绩排序并输出前三名
提示:
1.在方法中使用Arrays类的sort()方法对数组进行排序,默认按升序排列,注意Arrays类的使用需要导入java.util.Arrays
2.由于只需要输出考试成绩的前三名,所以定义一个变量,统计有效成绩的前三名的数量
3.使用for循环遍历数组中的元素,由于要输出的是前三名成绩,所以从后往前遍历,即倒序遍历。如:for ( int i = scores.length - 1; i >= 0; i-- ) { }
4.判断成绩的有效性,如果成绩小于0或大于100,则使用continue忽略此成绩
5.如果成绩有效,则有效成绩数加1。判断有效成绩的个数,如果有效成绩数大于3,则结束循环,只输出成绩的前三名
2)完成 main 方法
提示:
1)定义一个成绩数组scores,保存预定的考试成绩89,-23,64,91,119,52,73
2)调用自定义方法,传入成绩数组,完成功能
import java.util.Arrays; public class HelloJava { public static void main(String[] args) { //完成 main 方法 int[] scores={89,-23,64,91,119,52,73}; System.out.println("考试成绩的前三名为:"); HelloJava hello = new HelloJava(); hello.getArrays(scores); } //定义方法完成成绩排序并输出前三名的功能 public void getArrays(int[] scores) { Arrays.sort(scores);//Arrays.sort(数组名) 将数组按升序排序 int scoreNum=0;//定义有效成绩个数 for (int i=scores.length-1;i>=0&&scoreNum<3;i--) { //由于要输出前三名的成绩,所以需要从后往前遍历,即倒序遍历 if (scores[i]<0||scores[i]>100) {//判断成绩是否有效,如果无效,则使用continue忽略此成绩 continue; } else { scoreNum++;//有效成绩个数+1 } System.out.println(scores[i]); } } }