Друзья, подскажите почему в этом коде
public static int min(int a, int b) {
if (a < b)
return a;
else if (b < a )
return b;
return b;
если не прописать последний "return" , то выдаст ошибку
и почему разницы нет ни какой, если прописать return b или a в конце ?
Максим
15 уровень
Не могу понять ((
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Andrey PirogovExpert
24 января 2020, 10:38
В продолжении ответа Ксении, второе else if вообще смысла не имеет, можно сразу вернуть b. Однако что делать если а = b, это дополнительная проверка которую нужно реализовать и вернуть в соответствии с условием .
0
Ksenia Volkova Java Developer в DXC Master
24 января 2020, 10:42
А какой смысл в проверке a = b ?? Что бы ты ту ни вернул - это будет одно и то же число.
0
Максим
24 января 2020, 13:05
Спасибо, это понятно объяснили.
if (a < b)
return a;
else if (b < a )
return b;
return b; <-----------------------------------------------------------|
А почему результат тот же выводит если написать вот тут | return a ?
пример :
public static int min(int a, int b, int c, int d, int i) {
if (a <= b && a <= c && a <= d && a <= i)
return a;
else if (b <= a && b <= c && b <= d && b <= i)
return b;
else if (c <= a && c <= b && c <= d && c <= i)
return c;
else if (d <= a && d <= b && d <= c && d <= i)
return d;
else if (i <= a && i <= b && i <= c && i <= d)
return i;
return a; <---- что тут не ставь a | b | c | d | i все ровно результат будет один ?
}
0
Ksenia Volkova Java Developer в DXC Master
24 января 2020, 13:29
Что тут ни ставь - эта команда просто не будет выполнена. Потому что условия составлены так, что одно из них непременно выполнится и сработает один из предыдущих return.
Поэтому в данном случае неважно, что будет в последней строке.
А можно просто вместо последнего else if сделать
0
Максим
24 января 2020, 14:17
Очень доходчиво все объяснили, спасибо большое .
0
Ksenia Volkova Java Developer в DXC Master
24 января 2020, 10:18
Потому что все return зависят от выполнения условий в if.
А если ни одно не выполнится, то что метод должен будет вернуть? (например, если a = b)
Поэтому обязательно нужен return либо вне блока if, либо в else:
0