所以我有这个方法的意思是,我的目标是让用户一次输入一个等级,并在输入每个等级后弹出对话框,完成后他们点击没有任何东西或取消它填充平均文本字段。我无法弄清楚如何为这个方法输入正确的参数,因为我需要将它们输入的字符串解析为double数组,以便该方法可以正确计算。 这是下面的方法:
public double getAverage (double [] gradeArray, int numElem) {
double sum = 0;
for (int i = 0;i < numElem; i++){
sum = sum + gradeArray[i];
}
return (sum / numElem);
}
这是我的代码尝试获取字符串并将其放入方法中。显然是错的,但是我无法绕过整个事情。我不确定如何让我的numElem参数成为正确的数字,因为它会根据用户输入的等级而改变。 这是我按下按钮计算的代码:
private void btnGradesActionPerformed(java.awt.event.ActionEvent evt) {
int numElem = 0;
String s = "";
double[] gradesArray;
gradesArray = new double[25];
int i;
do {
s = (String)JOptionPane.showInputDialog(this, "Enter grades:", "Enter grades", JOptionPane.PLAIN_MESSAGE);
if (s == null || s.equals("")) {
if (s == null)
{
s = "";
}
String total2 = String.valueOf(avg);
txtMean.setText(total2);
} else {
for(i=0; i<25; i++)
{
gradesArray[i] = Double.parseDouble (s);
numElem++;
}
avg = getAverage (gradesArray, numElem);
}
} // end Do
while (!s.equals(""));
}
答案 0 :(得分:0)
跟踪学生输入的成绩。您可以使用从0开始的变量执行此操作,并在每次学生正确输入成绩时增加。然后,您可以将该值传递为numElem。
答案 1 :(得分:0)
我认为这样的事情是你想做的事情:
s = ... //ask user to input number of grades here
numElem = Int.parseInt (s)
for(i=0; i<numElem; i++)
{
s = ... //prompt for next grade
gradesArray[i] = Double.parseDouble (s);
}
您可以将gradesArray初始化为更大,以便考虑更多可能性,可能是100或者其他。只需确保numElem输入不大于初始化大小。