【发布时间】:2020-08-22 01:36:56
【问题描述】:
所以我尝试查找此错误 (Exception in thread "main" java.lang.ArithmeticException: / by zero)
并认为我在下面的代码中的数组列表大小为零。我不明白为什么它为零或如何解决它。它是否与阵列的容量有关?我似乎无法弄清楚我的代码有什么问题。
顺便说一句,这段代码用于计算数组列表中所有元素的平均值,并让用户知道平均值是多少。
我仍然是 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();
}
}
【问题讨论】:
-
在 while 循环中的 for 循环中,您使用了
myArray.size,即使它已经是 0。因此,将数字添加到 arraylist 的 for 循环不起作用。 -
数组中的第一个元素在索引零处,最后一个元素在array.size - 1处
-
List.size()返回已添加的元素数。它从零开始。 -
如果事先知道大小,请使用数组
标签: java exception arraylist average