gpt4 book ai didi

java - 如何在java中划分数组中的 double ?

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:43 25 4
gpt4 key购买 nike

我的数组中有一些 double 。我想将它们分开,例如使用包含 6.0、3.0 和 2,0 的数组,结果应该是 1 (6/3/2)。我写了以下代码:

System.out.print("How many numbers do you want to divide? ");
int division = input.nextInt();
double[] divisionArray = new double[division];

for(int i = 0; i < division; i++) {
System.out.print("Enter your " + (i + 1) + ". number: ");
divisionArray[i] = input.nextDouble();
}
for(int k = 0; k < division; k ++) {
double resultDivision = divisionArray[k] / divisionArray[k + 1];
}
System.out.println("Result: " + resultDivision);

但这似乎不起作用。我收到错误 Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException: 2 我是一个完整的 java 初学者。有人可以帮我吗?谢谢

最佳答案

您的代码存在三个问题。

  1. resultDivision 是在 for 循环的范围内定义的,因此在打印结果时它是不可见的。

  2. 修复 #1 后,您将收到 ArrayOutOfBounds 异常,因为第二个 for 循环尝试访问 divisionArray[k+1]

  3. 您不检查用户提供给您的参数。如果用户指定要除 -5 数字怎么办?您的代码将尝试创建长度为 -5 的数组,从而导致 Exception。另外,如果用户想除以零怎么办?你同意吗?

这是一个稍微好一点的版本:

Scanner input = new Scanner(System.in);
int division = 0;
do {
System.out.print("How many numbers do you want to divide? ");
division = input.nextInt();
} while (division <= 0);

double[] divisionArray = new double[division];
for (int i = 0; i < division; i++) {
System.out.print("Enter your " + (i + 1) + ". number: ");
divisionArray[i] = input.nextDouble();
if (divisionArray[i] == 0 && i>0) { // Remove this if you want to allow the user to divide by zero. Entering zero as the first argument is legal
System.out.println("Zero is an illegal argument, please enter a different number");
i--;
}
}
double resultDivision = divisionArray[0];
for (int k = 1; k < division; k++) {
resultDivision = resultDivision / divisionArray[k];
}
System.out.println("Result: " + resultDivision);

祝你好运。

关于java - 如何在java中划分数组中的 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39799310/

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