Предположим, у нас есть массив целых чисел. Мы написали функцию для извлечения индекса первого указанного значения в массиве или -1, если массив не содержит значения ..
Так, например, если array = { 4, 5, 4, 4, 7 }
, то getFirstIndexOf(4)
вернет 0, getFirstIndexOf(7)
вернет 4, а getFirstIndexOf(8)
вернет -1.
Ниже я представил три разных способа написания этой функции. Это широко распространенный стандарт кодирования, согласно которому returns
в середине функций и breaks
в середине циклов являются плохой практикой. Мне кажется, что это может быть приемлемым для них.
public int getFirstIndexOf(int specifiedNumber) {
for (int i = 0; i < array.length; i++) {
if (array[i] == specifiedNumber) {
return i;
}
}
return -1;
}
VS.
public int getFirstIndexOf(int specifiedNumber) {
int result = -1;
for (int i = 0; i < array.length; i++) {
if (array[i] == specifiedNumber) {
result = i;
break;
}
}
return result;
}
VS.
public int getFirstIndexOf(int specifiedNumber) {
int result = -1;
for (int i = 0; i < array.length; i++) {
if (array[i] == specifiedNumber && result == -1) {
result = i;
}
}
return result;
}
Что вы думаете? Какой лучше? Зачем? Возможно, есть другой способ сделать это?