PRAIT
@PRAIT

Зачем же все таки нужен return?

Всем привет, правильно ли я понимаю, что, return нужен для того что бы передавать результат действий метода взывающему классу? И если да, то, зачем нужен return в коде указанном ниже? Ведь и без возвращения данных код будет работать. Не совсем понимаю, объясните пожалуйста.

public class Program{
      
    public static void main (String args[]){
          
        daytime(7);     // Good morning
        daytime(13);    // Good after noon
        daytime(32);    // 
        daytime(56);    // 
        daytime(2);     // Good night
    }
    static void daytime(int hour){
         
        if (hour >24 || hour < 0)
            return;
        if(hour > 21 || hour < 6)
            System.out.println("Good night");
        else if(hour >= 15)
            System.out.println("Good evening");
        else if(hour >= 11)
            System.out.println("Good after noon");
        else
            System.out.println("Good morning");
    }
}
  • Вопрос задан
  • 598 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Оператор return, как и следует из его названия, возвращает из метода результат или управление.

P.S. Поразительно, что вы задаёте вопросы по Java с 2018-го года и до сих пор не освоили самые основы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
Если брать конкретно этот код, он не требует return, ведь он нарушает принцип единой ответственности. Метод daytime в вашем случае отвечает сразу за 2 действия - определение что выводим и его вывод. Правильно было бы иметь такой код:
static String daytime(int hour){
        if (hour >24 || hour < 0)
            throw new IllegalArgumentException("Bad argument");
        if(hour > 21 || hour < 6)
            return "Good night";
        else if(hour >= 15)
            return "Good evening";
        else if(hour >= 11)
            return "Good after noon";
        else
            return "Good morning";
    }


А вывод должен осуществляться в методе main

ps в жизни не писал на джаве, если там косяки в синстаксисе, поправьте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы