学生点名代码实现,抽到后下次点名不会再点

import java.util.Random;
import java.util.Scanner;

public class Day09_8 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            Random s = new Random();
            int b = 0;//计数器,记录点名次数
            String choise = "y";
            //声明学生姓名数组并初始化
            String[] stuNames = {"丫头", "妞妞", "秋天", "胡兵" };
            //声明学生标记数组
            boolean[] flags = new boolean[stuNames.length];
            for(;;) {
                
                //获取一个随机数
                int c = s.nextInt(stuNames.length);
                //忽略大小写做比较,如果不是y就退出循环
                if(!"y".equalsIgnoreCase(choise)){
                    break;
                }
                //判断该名同学是否已经被抽取,如果已经抽取进入下次循环
                if(flags[c]) {//为true,表示已经抽取
                    continue;//结束本轮循环,继续下一轮循环
                }
                //为false表示该同学没被抽取 打印输出
                System.out.println(stuNames[c]);
                //抽取完后 在标记数组相应位置进行标记为true
                flags[c] = true;
                b++;
                //判断计数器达到数组长度点名结束
                if(b == stuNames.length) {
                    break;
                }                
                //提示用户输入
                System.out.println("输入y立即进行下次点名,输入n退出点名");
                //用户输入
                choise = sc.nextLine();            
            }
            //当计时器达到数组长度时执行 所以学生点名已经点完
            if(b == stuNames.length){
                System.out.println("所以学生已经点完");
            }else {
                //当用户提前结束点名输出提示
                System.out.println("点名结束");
            }            
        }
    }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值