Пишет, что скорее всего отсутствует return, но он есть. В чем проблема?
public class Solution {
public static int min(int a, int b, int c)
{
if (a<=b && a<=c) return a;
if (b<=a && b<=c) return b;
if (c<=a && c<=b) return c;
}
public static void main(String[] args) {
System.out.println(min(1, 2, 3));
System.out.println(min(-1, -2, -3));
System.out.println(min(3, 5, 3));
System.out.println(min(5, 5, 10));
}
}
Тимофей
22 уровень
Почему данный код является неверным?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Damir
13 февраля 2020, 19:47
Тимофей, здравствуй. Хотел бы высказать пару предложений, касательно твоего кода. Во первых вместо 3 условных операторов (if), создай один и внеси в него свою логику с операторами else if, else, так будет правильнее. Во вторых имей привычку после условного оператора открывать фигурную скобку ( { ) и в ней писать что нужно сделать с числами или чем то другим, но не забывай эту скобку закрывать ( } ). В третьих это не замечание, но скорее это упростит твой код, чем каждый раз писать "return", определив в данной задаче минимальное число, занеси его в отдельную переменную и уже ее возвращай командой "return". Я не буду писать готовое решение, тебе это в будущем никак не поможет, но дам не большую подсказку как должна будет выглядеть твоя логика в этой задаче.
int minimum;
if(условие && условие) {
minimum = a; (например)
}
else if (условие && условие) {
minimum = b;
}
else {
minimum = c;
}
// и вот тут ты уже возвращаешь минимальное число командой return
return minimum;
0
hidden #598481
13 февраля 2020, 06:32
Потому что у тебя return только внутри ифов.
А что если ни один не выполнится?
0
Тимофей
13 февраля 2020, 13:19
Разве может ни 1 не выполниться? С меньше либо равно такого же не будет никогда
0
hidden #598481
13 февраля 2020, 13:37
С точки зрения компилятора это значения не имеет, т.к. состояние объектов можно оценить только в процессе выполнения задачи, т.е. после компиляции.
А на этапе компиляции проверяется только факт наличия условия: если условие есть, значит есть шанс, что оно не выполнится, значит есть шанс, что программа не сможет быть завершена. И он сразу об этом тебе говорит.
Если ты как программист сам понимаешь, что третье условие равносильно тому, что не выполнились первые два, то зачем нужно третье условие? Оно лишнее, можно его убрать. Пиши так:
или так
Да в конце концов хоть выброси исключение, лишь бы компилятору было понятно, что делать, в случае, если ни одно из условий не выполнилось: 0
Тимофей
13 февраля 2020, 16:50
Хорошо, спасибо за пояснения)
0