目录
随机点名器
任务描述
运行结果
任务目标
实现思路
实现代码
随机点名器
任务描述
编写一个随机点名器的程序,使其能够在全班同学中随机点中某一名同学的名字,随机点名器具备3个功能,包括存储全班同学的姓名,总览全班同学的姓名和随机点取其中一人的姓名。
运行结果
任务目标
-
学会分析"随机点名器"任务实现的逻辑思路。
-
能够独立完成"随机点名器"的源代码编写,编译及运行。
-
能够根据"随机点名器"程序功能的不同,将功能封装到不同的方法中。
-
能够使用数组解决多个学生姓名的存储问题。
-
掌握方法和数组的使用。
实现思路
①在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,可以使用数组解决多个数据的存储问题。创建一个可以存储多个同学姓名的数组,打算存几个同学姓名就创建相应长度的数组。
②键盘输入同学姓名,将输入的姓名依次赋值给数组各元素,此时便存储了全班同学姓名。键盘输入需要使用Scanner类,以下的代码能够从键盘输入中读取一个字符串。
Scanner sc=new Scanner(System.in); String str=sc.next();
③对数组进行遍历,打印出数组中每个元素的值,即实现了对全班每一位同学姓名的总览。
④根据数组长度,获取随机索引,通过随机索引获取数组中的姓名,该姓名也就是随机的姓名。获取随机索引可以使用Random类中的nextInt(int n)方法。
⑤"随机点名器"明确分为了三个功能,如果将多个独立功能的代码写到一起,则代码太冗余,可以针对不同的功能将其封装到不同的方法中,将完全独立的功能分离出来,然后只需要在main()方法中调用即可。
实现代码
package 集合类;
import java.util.Random;
import java.util.Scanner;
public class CallName {
public static void addStudentName(String[] students){
//从键盘中输入多个同学的姓名存储到容器中
Scanner sc=new Scanner(System.in);
for(int i=0;i<students.length;i++){
System.out.println("存储第"+(i+1)+"个姓名:");
//接收控制台录入的姓名字符串
students[i]=sc.next();
}
}
public static void printStudentName(String[] students){
//遍历数组,得到每个同学姓名
for(int i=0;i< students.length;i++){
String name=students[i];
System.out.println("第"+(i+1)+"个学生姓名:"+name);
}
}
public static String randomStudentName(String[] students) {
//根据数组长度,获取随机索引
int index=new Random().nextInt(students.length);
String name=students[index];
//返回随机点到的姓名
return name;
}
public static void main(String[] args) {
System.out.println("-----随机点名器");
//创建一个可以存储多个同学姓名的数组
String[] students=new String[3];
//存储全班同学的姓名
addStudentName(students);
//总览全班同学的姓名
printStudentName(students);
//随机点名其中一个人
String randomName=randomStudentName(students);
System.out.println("被点名到的同学是:"+randomName);
}
}
⛵总结
通过这一个随机点名器可以练习使用数组解决多个数据的存储问题,可以让我们学会根据程序不同的功能,将其代码封装在不同的方法中,将完全独立的功能分离开来,减少代码的冗余量,提升自己编写代码的能力与水平。
如果这篇【文章】有帮助到你,希望可以点个赞👍,创作不易,如果有对【Java基础】【后端技术】、【数据结构】【Linux操作系统】感兴趣的小可爱,也欢迎关注 【LNORA】,对【算法设计与分析】感兴趣的可以免费订阅【算法设计与分析】的专栏,如果我的文章有帮助到你,麻烦来个一键三连奥,这将是对我莫大的鼓励,我将为大家带来更加优质的文章!我们可以一起进步,每天进步一点点,我将会给你带来巨大的【收获与惊喜】💝💝!