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

Java实现轮盘赌数组指定元素移至索引0其余元素右移

轮盘机数组位移功能修正方案

原代码存在的问题

  • 缺少java.util.Scanner包导入,编译无法通过
  • collisionIndex赋值错误:原本存储的是匹配到的数字本身,实际应该存储该数字对应的数组下标i
  • 内层循环逻辑完全失效:循环起始值、终止条件、遍历方向均不符合需求,代码不会进入内层循环执行位移操作
  • 数组位移逻辑错误:没有将原索引0到匹配索引前一位的元素依次后移一位
  • 数组打印方式错误:直接打印数组名只会输出内存地址,无法查看数组实际内容

修正后完整代码

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] rouletteNumbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36};
        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter number : ");
        int whatNumberCame = scanner.nextInt();
        int collisionIndex = -1;

        // 查找输入数字对应的下标
        for(int i = 0; i < rouletteNumbers.length ; i++){
            if(rouletteNumbers[i] == whatNumberCame){
                collisionIndex = i;
                System.out.println("COLLISION AT INDEX " + i);
                break;
            }
        }

        // 校验输入合法性,执行位移
        if(collisionIndex != -1){
            // 暂存要放到首位的数字
            int targetNum = rouletteNumbers[collisionIndex];
            // 从匹配下标开始,将前序元素依次后移一位
            for (int j = collisionIndex; j > 0 ; j--){
                rouletteNumbers[j] = rouletteNumbers[j - 1];
            }
            // 首位赋值为最新开出的数字
            rouletteNumbers[0] = targetNum;
            // 打印最终数组
            System.out.println("更新后数组:" + Arrays.toString(rouletteNumbers));
        }else{
            System.out.println("输入的数字不在轮盘数字范围内");
        }
        scanner.close();
    }
}

功能验证

输入数字10时,输出的数组为:
[10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
和需求示例完全一致。

内容的提问来源于stack exchange,提问作者Badri Rusadze

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:45:00