【发布时间】:2013-11-18 10:01:54
【问题描述】:
我有一个以递归方式运行的数组,它会找到数组中的最小数字。我运行程序并在 (Assignment9.java:36) 上收到 ArrayIndexOutOfBoundsException 错误 if (previousMin > numbers[endIndex]) 和 (Assignment9.java:20) double min = findMin(numbers, 0, numbers.length);我知道为什么通常会出现此问题,但我找不到我的代码的修复程序。我不知道我的实际代码是否有效,因为我无法运行该程序。任何建议..
import java.io.*;
import java.text.*;
public class Assignment9
{
public static void main(String[] args) throws IOException
{
int [] numbers = new int[100];
InputStreamReader streamR = new InputStreamReader(System.in);
BufferedReader inFile = new BufferedReader(streamR);
String reader = inFile.readLine();
double min = findMin(numbers, 0, numbers.length);
System.out.print ("The minimum number is " + min + ('\n'));
}
public static int findMin (int [] numbers, int startIndex, int endIndex)
{
if (startIndex == endIndex)
{
return numbers[startIndex];
}
else
{
double previousMin = findMin (numbers, startIndex, endIndex - 1);
if (previousMin > numbers[endIndex])
return numbers[endIndex];
else
return numbers[endIndex];
}
}
【问题讨论】:
-
array[array.length],根据定义,对于任何数组,总是抛出 ArrayIndexOutOfBoundsException