当我需要将 5 个用户输入的值存储到一个数组中,将其发送到一个方法,并查找并显示最低值时,我一直在研究这个基本的 java 程序。
该程序很简单,并且可以运行,但是当我输入最后一个数字时,出现错误:
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 4
在 minNumber.main(minNumber:14)
Help?
import java.util.*;
class minNumber {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int numberArray[] = new int[4];
int findLowest;
for (int i = 0; i <= numberArray.length; i++){
System.out.println("Enter a value for slot "+(i+1)+ ":");
numberArray[i] = input.nextInt();
}
findLowest = getMin(numberArray);
displayOutput(findLowest);
}
public static int getMin(int num[]){
int lowestNum = 0;
for (int j = 0; j <= num.length; j++){
if (num[j] < num[j+1]){
lowestNum = num[j];
}
}
return lowestNum;
}
public static void displayOutput(int lowest){
System.out.println("The lowest number is: "+lowest);
}
}
首先,如果你想要一个数组有 5 个值,那么用 5 声明它:
int numberArray[] = new int[5];
其次,你要离开数组的末尾。改变
for (int i = 0; i <= numberArray.length; i++){
to
for (int i = 0; i < numberArray.length; i++){
你需要改变你的其他j
for
也这样循环。
顺便说一句,你的getMin
除了我上面提到的改变之外,方法还需要另一个改变,因为说num[j+1]
即使您进行了上述更改,仍然会超出数组的末尾。我认为您需要将当前数组元素与lowestNum
,而不是下一个数组元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)