2013-11-15 3 views
0

Я продолжаю получать ошибку инструкции return для этого раздела кода. Выглядит хорошо, может быть, кто-то здесь может помочь?Базовая Java: ошибка в заявлении о возврате?

//It returns the index of the number specified by the parameter is 
//located. If the number is not found, it returns -1. 
private int indexOf(int searchingNum) { 
    for (int index = 0; index < count; index++) 
     if (numberArray[index] == searchingNum) { 
      return index; 
     } else 
      return -1; 
} 
+2

В ваших отпечатках указано, что ваш код не делает то, что вы думаете. –

ответ

2

для компилятора, этот метод не содержит return заявления, которое гарантировано быть выполнены в любом случае. у вас есть return в вашем for цикле, но компилятор не знает, по крайней мере, одна итерация будет выполняться, и поэтому он не уверен, что если return оператор будет выполняться

2

ваш последний else не требуется

//It returns the index of the number specified by the parameter is 
//located. If the number is not found, it returns -1. 
private int indexOf(int searchingNum) 
{ 
    for (int index = 0; index < count; index++) 
     if (numberArray[index] == searchingNum){ 
      return index; 
     } 
    } 
    return -1; 
} 
0

В настоящее время у вас будет возвращено -1 всегда с исключением, если numberArray[0] имеет searchingNum. что вы, вероятно, имел в виду это:

private int indexOf(int searchingNum) 
{ 
    for (int index = 0; index < count; index++) { 
     if (numberArray[index] == searchingNum) { 
      return index; 
     } 
    } 
    return -1; 
} 

также субсчета count к numberArray.length - это позволит сэкономить время для вас в случае count не равна длине numberArray

0

Проблема заключается в том, что происходит, когда для цикл не выполняется, что будет возвращено? У вас есть путь, который не возвращает ожидаемое значение, указанное типом возвращаемого метода.

0

Отсутствует на складе return ошибка со статусом beacuse все ваши return заявление находится в if-else. Должно быть по крайней мере на return statument выходят за рамки всех ваших условных утверждений, включая петли.

private int indexOf(int searchingNum) { 
for (int index = 0; index < count; index++) 
if (numberArray[index] == searchingNum){ 
    return index; 
} 
else return -1; 
Смежные вопросы