计算最大连续签到天数

该代码段定义了一个Java测试方法,用于模拟随机生成的31天签到数据。程序计算了最大连续签到天数,并在达到特定连续签到天数(如3天、4天、5天)时输出相应的金币奖励信息。最后,它会输出整个签到期间的最大连续签到天数。
    /**
     * 判断连续签到天数
     */
    @Test
    public void test4() {
        // 定义一个长度为31的数组
        Integer[] arrs = new Integer[31];
        // 随机数
        Random random = new Random();
        for (int i = 0; i < arrs.length; i++) {
            // 给数组放入0或者1,1代表签到,0代表没有签到
            arrs[i] = random.nextInt(2);
        }
        System.out.println(Arrays.toString(arrs));
        // 最大签到天数
        int maxCount = 0;
        // 当前签到天数
        int num = 0;
        for (int i = 0; i < arrs.length; i++) {
            if (arrs[i] == 1) {
                // 签到当前签到天数就加一
                num++;
                // 判断连续签到的天数,并赠送相应的金币
                switch (num) {
                    case 3:
                        System.out.println("送连续签到3天的金币");
                        break;
                    case 4:
                        System.out.println("送连续签到4天的金币");
                        break;
                    case 5:
                        System.out.println("送连续签到5天的金币");
                        break;
                }
                // 打断本次循环
                continue;
            }
            if (arrs[i] == 0) {
                // 如果当前签到天数大于最大签到天数,把当前签到天数赋值给最大签到天数
                if (num > maxCount) {
                    maxCount = num;
                }
                // 并给当前签到天数归零
                num = 0;
            }
        }
        System.out.println("最大连续签到天数" + maxCount);
    }

结果 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值