所以我试着查这个错误( Exception in thread "main" java.lang.ArithmeticException: / by zero
)我发现下面代码中的数组列表大小是零。我不明白为什么它是零或者怎么解决它。它是否与阵列的容量有关?我似乎不知道我的代码出了什么问题。
顺便说一句,这段代码用于计算arraylist中所有元素的平均值,并让用户知道平均值是多少。
我还是java的初学者,所以如果这看起来很愚蠢,我很抱歉。感谢您的帮助!
import java.util.*;
public class ClassStuff {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList <Integer> myArray = new ArrayList <Integer> ();
int userInput = 0;
String userConf = "";
while ((!userConf.equalsIgnoreCase("y"))) {
System.out.println("Please enter a number: ");
userInput = scan.nextInt();
for (int i = 1; i <= myArray.size(); i++) {
userInput = scan.nextInt();
myArray.add(userInput);
}
scan.nextLine();
System.out.println("Are you done entering numbers? (y/n): ");
userConf = scan.nextLine();
}
int result = computeAvg(myArray);
System.out.println("Average is: " + result);
}
public static int computeAvg(List <Integer> myArray) {
int sum = 0;
int avg = 0;
for (int i = 0; i < myArray.size(); i++) {
sum = sum + myArray.get(i);
}
return avg = sum/myArray.size();
}
}
2条答案
按热度按时间pqwbnv8z1#
我假设是这样的:
获取要添加到arraylist的元素数量,稍后我们将通过for循环将其添加到列表中。在这种情况下,将其保存在另一个变量中,称为
list_length
,自userInput
for循环中不断变化。然后将此输入后的for循环更改为如下内容:
这是因为您将for循环的结尾改为
myArray.size()
,但请记住,它已经是0,因此for循环结束1 >= 0
. 你可能想加上list_length
数组列表中的数字量mccptt672#
我发现了你的问题。
问题是for循环,因为arraylist在循环过程中没有捕获任何元素。
我还对这个方法做了一些调整,使它计算出正确的平均值。
下面是一个例子
输出
mylist=[4,5]
平均值=(4+5)/2(myarray.size())=4.5
希望有用!