如何正确调用方法

时间:2013-12-06 00:08:04

标签: java loops methods mean

所以我有这个方法的意思是,我的目标是让用户一次输入一个等级,并在输入每个等级后弹出对话框,完成后他们点击没有任何东西或取消它填充平均文本字段。我无法弄清楚如何为这个方法输入正确的参数,因为我需要将它们输入的字符串解析为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(""));

}

2 个答案:

答案 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输入不大于初始化大小。