JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Компиляция выдает ошибку : missing return statement: Solu...
Juli Sh
3 уровень
  • 04.08.2018
  • 2517просмотров
  • 15комментариев

Компиляция выдает ошибку : missing return statement: Solution.java, line: 16, column: 6

Вопрос по задаче Минимум трёх чисел
Java Syntax,  2 уровень,  8 лекция
Решен


Написать функцию, которая вычисляет минимум из трёх чисел.

Подсказка:
Нужно написать тело существующей функции min.

Требования:
  • Программа должна выводить текст на экран.
  • Метод min не должен выводить текст на экран.
  • Метод main должен вызвать метод min четыре раза.
  • Метод main должен выводить на экран результат работы метода min. Каждый раз с новой строки.
  • Метод min должен возвращать минимальное значение из чисел a, b и с.
package com.javarush.task.task02.task0216; /* Минимум трёх чисел */ public class Solution { public static int min(int a, int b, int c) { if(a < b && a < c) { return a;} else if (b < a && b < c) {return b;} else if (c < a && c < b) {return c;} } //напишите тут ваш код public static void main(String[] args) throws Exception { 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)); } }
0
Комментарии (15)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Tofig
Уровень 15
5 августа 2018, 10:20
Здраствуйте! Ошибака в том, что у вас отсутствует условие когда два параметра равны (a <= b && a <= c и так в каждом усдлвии). Еще, раз у вас только три варианта ответа, второй "else if" не нужен, его можно заменить просто на "else"
0
Олег
Уровень 31
4 августа 2018, 20:05
я не то шоб прям очень , но как грится чем смог : return (a < b ? a : b) > c ? c : (a < b ? a : b);
0
Juli Sh
Уровень 3
4 августа 2018, 19:31
Тут не с неравенством проблема, а с фигурными скобками... не могу понять где ошибка, вроде выделены все блоки..
0
--------
Уровень 40
Master
4 августа 2018, 19:35
При чем тут скобки, что твой метод должен возвращать, если какие-то 2 числа равны друг другу, т.е. ни одно из условий не выполняется?
0
Juli Sh
Уровень 3
4 августа 2018, 19:40
ни одно число не равно, см. решение, я имею ввиду что знак "<", что "<=" ничего не меняет
0
--------
Уровень 40
Master
4 августа 2018, 19:52
См. решение: System.out.println(min(5, 5, 10)); - что твой метод вернет в этом случае? У тебя прописано 3 условия, во всех трех числа обязательно должны быть не равны друг другу, а метод обязан возвращать какие-то значения для любых возможных условий. Да и в принципе, если во всех операторах if...else указаны конкретные условия, компилятор может не принимать - для него не очевидно, что какое-то значение будет возвращаться всегда. Поэтому пишут в конце или просто return x, или else return x - в этом случае какой-то return будет срабатывать всегда
0
Juli Sh
Уровень 3
4 августа 2018, 20:26
Почему ругается только на 16 строку? : missing return statement: Solution.java, line: 16, column: 6
0
--------
Уровень 40
Master
4 августа 2018, 20:31
Грубо говоря, доходит до конца метода (16 строки) и не видит, что есть гарантированный возврат значения - все возвраты только при выполнении определенных условий, ни одно из которых может и не выполниться
0
Juli Sh
Уровень 3
4 августа 2018, 20:38
хорошо, как же это исправить?)
0
--------
Уровень 40
Master
4 августа 2018, 21:08
Сравни 2 условных фрагмента кода
if (a > b) {
    return 1;
} else if (a < b) {
   return 0;
}
и
if (a > b) {
    return 1;
} else {
   return 0;
}
Один из них соответствует требованиям метода, возвращающего int (значение будет возвращено в любом случае), один - нет.
0
Juli Sh
Уровень 3
4 августа 2018, 22:22
Решила). Благодарю!)
+1
Michail
Уровень 8
4 августа 2018, 19:15
нужно ставить <=
0
Juli Sh
Уровень 3
4 августа 2018, 19:22
Тоже пробовала), не проходит, оставила строгую проверку неравенства
0
hidden #1594843
Уровень 31
4 августа 2018, 18:26
поставь после всех ветвлений return 0;
0
Juli Sh
Уровень 3
4 августа 2018, 18:35
Ставила, все равно не проходит. Последний пункт ошибка: Метод min должен возвращать минимальное значение из чисел a, b и с.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRush JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2025 JavaRush
MastercardVisa
"Программистами не рождаются" © 2025 JavaRush