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

如何实现用户向Java数组输入数值?篮球得分统计多数组需求遇阻

Java数组录入球员得分的解决方案

嘿,我懂你现在卡在让用户输入10名球员得分到数组这一步的困扰了,别慌,我来给你捋清楚正确的实现方法,还会帮你排查常见的错误点~

一、核心实现思路

你需要借助Scanner类来读取用户输入,然后通过for循环遍历数组的每个索引,逐个让用户输入数值并赋值给数组元素,之后再计算两场得分的总和存入第三个数组。

二、完整可运行代码示例

import java.util.Scanner;

public class BasketballScores {
    public static void main(String[] args) {
        // 初始化三个长度为10的数组,对应10名球员的两场得分及总和
        int[] firstGameScores = new int[10];
        int[] secondGameScores = new int[10];
        int[] totalScores = new int[10];
        
        Scanner scanner = new Scanner(System.in);
        
        // 录入第一场比赛得分
        System.out.println("请输入10名球员第一场比赛的得分:");
        for (int i = 0; i < firstGameScores.length; i++) {
            System.out.print("第" + (i + 1) + "名球员得分:");
            // 读取用户输入的整数,赋值给对应索引的数组元素
            firstGameScores[i] = scanner.nextInt();
        }
        
        // 录入第二场比赛得分
        System.out.println("\n请输入10名球员第二场比赛的得分:");
        for (int i = 0; i < secondGameScores.length; i++) {
            System.out.print("第" + (i + 1) + "名球员得分:");
            secondGameScores[i] = scanner.nextInt();
        }
        
        // 计算两场得分的总和,存入第三个数组
        for (int i = 0; i < totalScores.length; i++) {
            totalScores[i] = firstGameScores[i] + secondGameScores[i];
        }
        
        // 输出结果,验证正确性
        System.out.println("\n球员两场比赛总得分汇总:");
        for (int i = 0; i < totalScores.length; i++) {
            System.out.println("第" + (i + 1) + "名球员:" + totalScores[i]);
        }
        
        scanner.close(); // 关闭Scanner,释放资源
    }
}

三、你可能踩的坑及解决办法

  • 数组越界异常(ArrayIndexOutOfBoundsException)
    这是最常见的问题,比如循环条件写成i <= firstGameScores.length。记住数组的索引是从0开始的,最后一个元素的索引是数组长度-1,所以循环条件必须是i < 数组长度。

  • 输入非数值导致的异常(InputMismatchException)
    如果用户不小心输入了字母、符号等非整数内容,nextInt()会直接抛出异常。想要让程序更健壮,可以加个输入校验:

    // 在读取输入前先判断是否为整数
    while (!scanner.hasNextInt()) {
        System.out.println("请输入有效的整数得分哦!");
        scanner.next(); // 清除无效的输入内容
    }
    firstGameScores[i] = scanner.nextInt();
    
  • 空指针异常(NullPointerException)
    比如你只声明了数组int[] firstGameScores;但没有初始化new int[10],这样数组对象还没创建,赋值时就会报错。一定要记得初始化数组的长度。

四、关键代码说明

  • 先初始化三个长度为10的int数组,确保能容纳10名球员的得分数据。
  • 用Scanner的nextInt()方法读取用户输入的整数,保证输入类型和数组元素类型匹配。
  • 最后通过循环遍历三个数组的对应索引,计算两场得分的和并存储,再输出结果验证。

内容的提问来源于stack exchange,提问作者ABSTRACT SHNITZEL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:37:08