如何将用户输入(来自对话框)转换成数组?

问题描述 投票:0回答:1

我真的需要帮助我的程序。我想用java做一个累积成绩计算器,使用数组和对话框。不知道为什么,我的数组不能打印出用户的输入,这让我的计算受到影响。我怎样才能给它正确的值?

    {
        // First array - Length
        int[] arNumber = null;
        int number;
        String str;

        // Second array - Elements
        int numbers;
        int[] arNumbers = null;
        int total = 0;
        int gradeSum = 0;
        String str2;

        String message = "How many grades will you input in this class?";
        str = JOptionPane.showInputDialog(message);
        number = Integer.parseInt(str);
        arNumber = new int[number];

        for(int index = 0; index < arNumber.length; index++)
        {
            String message2 = "Insert your grade";
            str2 = JOptionPane.showInputDialog(message2);
            numbers = Integer.parseInt(str2);
            arNumbers = new int[numbers];

        }
        for (int element : arNumbers)
        {
            // Print array onto console
            System.out.println(element);

            // Add all elements 
            gradeSum += element;

            // Print grade onto console
            System.out.println(gradeSum);
        }

        total = gradeSum / arNumber.length;

        return total;

    }```
java arrays dialog average
1个回答
0
投票

看起来你不需要使用两个数组。这一行有 arNumbers = new int[numbers]; 也就是说 arNumbers 循环的每次迭代都会被重新初始化为一个新的数组。尝试使用 arNumber[index] = numbers; 将用户输入的值赋值至 arNumber 阵列,并取消 arNumbers. 然后循环 arNumber 在第二个循环中。

同时注意到 total 被声明为 int 这将截断你的浮点值,我猜你不希望这样。祝您好运!

© www.soinside.com 2019 - 2024. All rights reserved.