2条回答 默认 最新
- honvin_ 2021-09-24 01:49关注
写了个简单的例子,参考一下
import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Scanner; public class RandomRollCall { public static void main(String[] args) { // 初始化学生 List<Student> list = new ArrayList<>(); list.add(new Student(0, "同学0")); list.add(new Student(1, "同学1")); list.add(new Student(2, "同学2")); list.add(new Student(3, "同学3")); list.add(new Student(4, "同学4")); // 学生总数 int listSize = list.size(); // 已点名数 int count = 0; // 文本扫描器 Scanner scan = new Scanner(System.in); // 随机数生成器 Random random = new Random(); System.out.print("是否开始点名:"); while (scan.hasNext()) { // 输入的字符(yes、no) String scanStr = scan.nextLine(); if ("yes".equals(scanStr)) { // 根据还未点名的总人数生成随机数 int index = random.nextInt(list.size()); // 累计已点数 count++; System.out.println(String.format("学号:%s\t,姓名:%s", list.get(index).getId(), list.get(index).getName())); System.out.println(String.format("共:%d,\t已点:%d,\t,未点:%d", listSize, count, listSize - count)); // 避免重复点名,把已点的学生从集合删除 list.remove(index); if (list.size() <= 0) { break; } } else if ("no".equals(scanStr)) { break; } else { System.out.print("输入错误,请重新输入:"); continue; } System.out.print("是否继续点名:"); } System.out.println("点名结束"); scan.close(); } } class Student { private int id; private String name; public Student(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!