写了个简单的例子,参考一下
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;
}
}
用java.util.Scanner来实现接受键盘输入的功能,再用判断语句进行判断