Это вопрос, с которым я некоторое время сталкивался в классе моего колледжа, о котором я думал, и мне нужно узнать мнение других людей.Я искал и не мог найти другой вопрос, очень похожий на этот с точки зрения практики кодирования.
(примеры написаны на Java)
Когда я пишу свой код, я обычно пишу такие методы:
public void myMethod(int one, int two) {
if (one >= two) return;
// do things
if (two != one) return;
// do other things
}
Вместо того, чтобы писать методы, подобные этому:
public void myMethod(int one, int two) {
if (one < two) {
// do things
if (two != one) {
// do other things
}
}
}
Аналогично, я буду писать свои циклы следующим образом:
for (int i = 0; i < x.length; i++) {
if (x[i].getValue() > 4) continue;
// do things
if (!xConditionTwo) continue;
// do other things
}
Вместо этого:
for (int i = 0; i < x.length; i++) {
if (x[i].getValue() <= 4) {
// do things
if (xConditionTwo) {
// do other things
}
}
}
Как видно здесь, я смотрю на вещи последовательно (от верхней строки до нижней строки), и для меня имеет смысл выйти из метода / цикла, если это что-то не то, что мы ищемдля, и мы не требуем другого заявления.
Однако, когда я говорил с преподавателями моего колледжа, они все согласились, что если кто-то напишет такой код, их не будут нанимать, потому что указанный человек не можетВыясните алгоритм, который не требует использования продолжения / возврата.
Мой вопрос ко всем: когда допустимо использовать продолжение / возврат, чтобы прервать подобное, если вообще?Почему это считается плохой практикой, и как я могу избежать использования операторов if без другого, чтобы избежать дополнительных отступов?