gpt4 book ai didi

java - 在数组中存储变量?

转载 作者:行者123 更新时间:2023-12-01 13:54:01 25 4
gpt4 key购买 nike

我需要找出多个作业值的偏差。为了做到这一点,我需要存储一个变量作业,它位于 for 循环中,因此它每次执行时都会删除自身。另外,为了存储单独的作业分数值,我需要的变量数量是未知的,所以我不能只列出变量列表。我认为我需要做的是做一个数组列表,但我不确定我做得是否正确。

这是包含我创建的数组的方法的代码...

 public double computeHomeworkDeviation(int homework){
int[] homeworkScore = new int[totalStudents];
if(computeHomeworkDeviationCounter < totalStudents){
homeworkScore[computeHomeworkDeviationCounter] = homework;
computeHomeworkDeviationCounter++;
}
else{
for(int k = 1; k <= totalStudents; k++){
top += Math.pow(homeworkScore[totalStudents - k] - homeworkAverage, 2);
}
homeworkDeviation = Math.sqrt(top / totalStudents);
}
return homeworkDeviation;
}

此方法被调用到 for 循环并调用需要存储在数组列表中的作业变量的参数。我所拥有的不起作用,我做错了什么?(我不相信数组值被存储)

编辑:我现在将其分为两种方法。

设置数组方法...

 public void setHomeworkArray(int homework){
homeworkScore[l] = homework;
l++;
}

计算家庭作业偏差方法...

 public double computeHomeworkDeviation(int homework){
for(int k = 1; k <= totalStudents; k++){
top += Math.pow(homeworkScore[totalStudents - k] - homeworkAverage, 2);
}
homeworkDeviation = Math.sqrt(top / totalStudents);
return homeworkDeviation;
}

仍然收到 ArrayOutOfBoundsException 错误。

最佳答案

您的预感是正确的,这些值没有正确存储。我不确定您到底希望程序执行什么操作,但我认为在数组中存储值时您需要一个循环而不是 if:

while(computeHomeworkDeviationCounter < totalStudents){
homeworkScore[computeHomeworkDeviationCounter] = homework;
computeHomeworkDeviationCounter++;
}

这也意味着您必须删除 else 语句。最后,为了避免多次执行此方法时出现错误,我建议在调用该方法时重置变量 computeHomeworkDeviationCounter:

public double computeHomeworkDeviation(int homework){
int[] homeworkScore = new int[totalStudents];
computeHomeworkDeviationCounter = 0;

...或者甚至将其作为方法局部变量(如果它没有在其他地方使用):

public double computeHomeworkDeviation(int homework){
int[] homeworkScore = new int[totalStudents];
int computeHomeworkDeviationCounter = 0;

如果适用于程序的其余部分,对于变量 top 也是如此。

关于java - 在数组中存储变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com