当前位置: java社区 > 02-初窥门径 > 阅读正文

java控制台随机点名器

2021.8.17.   250 次   871字

要求:给定n个名字组成一个数组,程序启动后用户控制”1:点名“,”0:退出“,点击1后随机抽取一个姓名并打印到控制台,并从名字数组中删除,然后下一次从剩余的名字中随机抽取,若用户输入的是0,则直接退出程序,或全部名字点完也自动退出。

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random rd = new Random();
        String t;  // 临时交换变量
        System.out.println("*********欢迎使用java控制台随机点名器*********");

        String[] names = {"张三","李四","王五","赵六","无名7","无名8","无名9","无名10","无名11"};


        flag: for(int i=0;i<names.length;i++) {  // 循环n次

            // 1.提示用户操作
            System.out.println("请选择,1:点名,0:退出。");

            int op = sc.nextInt();  // 获取用户操作
            switch (op){
                case 1: {
                    int r = rd.nextInt(names.length-i);  // 随机获得一个下标
                    System.out.println(names[r]);
                    // 不能重复抽取,取出的和最后一个做交换
                    t = names[r];
                    names[r] = names[names.length-i-1];
                    names[names.length-i-1] = t;
                    break;
                }
                case 0:{
                    System.out.println("********点名系统退出,感谢使用********");
                    break flag;
                }
                default:{
                    System.out.println("你的输入有误,请重新输入。");
                }
            }

        }

    }

程序试执行,结果如下:

  • 欢迎使用java控制台随机点名器
  • 请选择,1:点名,0:退出。
  • 1
  • 无名8
  • 请选择,1:点名,0:退出。
  • 1
  • 张三
  • 请选择,1:点名,0:退出。
  • 1
  • 无名11
  • 请选择,1:点名,0:退出。
  • 0
  • 点名系统退出,感谢使用

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群