如何将用户输入(从对话框)转换为数组
How to convert User input (from dialog boxes) into arrays
我的程序真的需要帮助。我正在尝试使用数组和对话框在 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;
}```
看来你不需要使用两个数组。带有 arNumbers = new int[numbers];
的行意味着 arNumbers
正在为该循环的每次迭代重新初始化为一个新数组。尝试使用 arNumber[index] = numbers;
将用户输入的值分配给 arNumber
数组并取消 arNumbers
。然后在第二个循环中循环arNumber
。
另请注意,total
声明为 int
,这将截断您的浮点值,我猜您不希望这样。祝你好运!
我的程序真的需要帮助。我正在尝试使用数组和对话框在 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;
}```
看来你不需要使用两个数组。带有 arNumbers = new int[numbers];
的行意味着 arNumbers
正在为该循环的每次迭代重新初始化为一个新数组。尝试使用 arNumber[index] = numbers;
将用户输入的值分配给 arNumber
数组并取消 arNumbers
。然后在第二个循环中循环arNumber
。
另请注意,total
声明为 int
,这将截断您的浮点值,我猜您不希望这样。祝你好运!