You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java老虎机程序问题:数组元素相等判断逻辑故障排查

简易老虎机程序问题修复方案

问题排查

你的程序出现异常的核心原因是数组越界:for循环结束后,变量i的值为3(数组长度是3,循环从i=0执行到i=2,结束后i自增为3),此时访问slots[i]会触发ArrayIndexOutOfBoundsException。同时输出逻辑不符合需求,且输赢判断存在漏洞(比如两个数字相等但第三个不同的情况会无输出)。

修复后的完整代码

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

public class Main {

    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int slots[] = new int[3];
        boolean play = true;
        String playAgain;

        System.out.println("Welcome to the Simple Slot Machine!");
        
        while (play) {
            System.out.println("\nPress Enter to spin the wheels...");
            scnr.nextLine(); // 等待用户按回车
            
            spinReels(slots);
            displayResult(slots);
            
            // 询问是否再玩
            System.out.print("\nPlay again? (y/n): ");
            playAgain = scnr.nextLine().trim().toLowerCase();
            if (!playAgain.equals("y")) {
                play = false;
                System.out.println("Thanks for playing!");
            }
        }
        scnr.close();
    }

    // 生成随机老虎机数字
    public static void spinReels(int[] slots) {
        Random rand = new Random();
        for (int i = 0; i < slots.length; i++) {
            slots[i] = rand.nextInt(10);
        }
    }

    // 展示结果并判断输赢
    public static void displayResult(int[] slots) {
        // 拼接三个数字输出
        System.out.print(slots[0] + "" + slots[1] + "" + slots[2]);
        
        // 判断输赢:三个数字全相等则赢,否则输
        if (slots[0] == slots[1] && slots[1] == slots[2]) {
            System.out.println("... WINNER!");
        } else {
            System.out.println("... LOSER!");
        }
    }
}

关键修改说明

  • 修复数组越界:直接使用数组下标0、1、2拼接数字,避免使用循环结束后的i变量访问数组。
  • 优化判断逻辑:删除冗余的else if,只要三个数字不全相等就判定为输,覆盖所有输的场景。
  • 完善交互流程:
    • 添加循环实现多次游戏功能
    • 等待用户按回车再启动转盘
    • 游戏结束后询问是否继续
  • 拆分功能模块:将转盘生成和结果展示拆分为独立方法,代码更清晰易维护。

内容的提问来源于stack exchange,提问作者Mount Dew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:02:40