Почему эта функция:
public static int test(int[] a, int v)
{
for (int i = 0; i < a.length; i++)
{
if (a[i] == v)
return I;
else return -1;
}
}
не компилируется, учитывая a
= {0,2,3,4} и v
= 2?
Кажется, цикл должен запуститься и вернуть -1, так как первый элемент не v
.
Он не компилируется, потому что не все пути возвращают значение. Ничего не возвращается, если цикл
for
никогда не вводился.Помимо основного вопроса, понимаете ли вы, что ваш цикл может повторяться только один раз, потому что в каждой ветви
if
вы возвращаете значение (которое останавливает выполнение метода, включая выполнение цикла)?