Ваша первая проблема здесь:
int[] rangeArray = new int[0];
Что это делает экземпляр и массив целых чисел, названных rangeArray
. Затем он инициализирует его длиной 0
. Поэтому все, что добавлено в этот массив, было бы вне пределов. Вы должны инициализировать его до длины результата возврата; В этом случае трудно.
Тогда мы имеем этот блок кода:
for (int i = low; i <= high; i++) //start at the lowest possible number and go to the highest
{
//check for validity
}
Существует немного концепции вопроса здесь; вы делаете итерацию от low
до high
. Что делать, если low
очень низкий (-1 миллион?) И high
также очень высокий? Это много думает безрезультатно.
Вместо позволяет цикл через массив вы на самом деле данный:
for (int idx = 0; idx < a.length; idx++) {
//Check the value of int, if it is in the desired range, save it.
}
Наконец, давайте рассмотрим это:
if (low >= a.length && high <= a.length)
Это примерно переводится «, если нижний конец моего желаемого диапазона больше, чем длина списка чисел, которые я проверяю, а верхний конец моего диапазона меньше той же длины, возьмите «истинную» ветвь ». Это не то, что вы ищете.
Вместо этого вы хотите «если текущее значение индекса находится между моим низким и высоким, сохраните его».
if (a[idx] >= low && a[idx] <= high)
Подвижной его мы получаем:
public static int[] range(int[] a, int low, int high)
{
int[] rangeArray = new int[a.length];//this is the most we will need
int numbersFound = 0;//to keep track of result array index
for (int idx = 0; idx < a.length; idx++) {
{
if (a[idx] >= low && a[idx] <= high)
{
rangeArray[numbersFound++] = a[i];
}
}
return rangeArray;
}
Обратите внимание, что в этом случае ваш массив вероятно, будет иметь некоторые пустые ячейки в конце. Будьте осторожны, прежде чем использовать его!
'ИНТ [] RangeArray = новый INT [0];' Что делать вы думаете, что это так? –
Начать здесь: [Учебник Oracle по использованию массивов] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) –
Не нужно быть грубым. И его входы/выходы для функции, которую он описывает, являются правильными. –