Отображение сообщения «Утро, день, вечер, ночь» по времени в Java

Конструкция, подобная x = x++;, указывает, что вы, вероятно, неправильно понимаете, что делает оператор ++:

// original code
int x = 7;
x = x++;

Давайте перепишем это, чтобы сделать то же самое, на основе удаления оператора ++ :

// behaves the same as the original code
int x = 7;
int tmp = x; // value of tmp here is 7
x = x + 1; // x temporarily equals 8 (this is the evaluation of ++)
x = tmp; // oops! we overwrote y with 7

Теперь давайте перепишем его, чтобы сделать (что я думаю) вам хотелось:

// original code
int x = 7;
x++;

Тонкость здесь в том, что ++ оператор изменяет переменная x , в отличие от выражения, такого как x + x, которое будет оценивать значение int, но оставить переменную x самой неизменной. Рассмотрим конструкцию как почтенный цикл for:

for(int i = 0; i < 10; i++)
{
    System.out.println(i);
}

Обратите внимание на i++ там? Это тот же оператор. Мы могли бы переписать этот цикл for как это, и он будет вести себя одинаково:

for(int i = 0; i < 10; i = i + 1)
{
    System.out.println(i);
}

В большинстве случаев я также рекомендую не использовать оператор ++ в больших выражениях. Из-за тонкости , когда он изменяет исходную переменную в сравнении с последующим приращением (++x и x++, соответственно), очень легко ввести тонкие ошибки, которые трудно отследить вниз.

20
задан Devrath 21 December 2014 в 13:13
поделиться

1 ответ

using System;

namespace PF_Claas_Assign1
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime Greeting = DateTime.Now;

            if (Greeting.Hour >= 5 && Greeting.Hour < 12)
            {
                Console.WriteLine("Good morning....!");
            }
            else if (Greeting.Hour >= 12 && Greeting.Hour < 16)
            {
                Console.WriteLine("Good afternoon...!");
            }
            else if (Greeting.Hour >= 16 && Greeting.Hour < 20)
            {
                Console.WriteLine("Good evening...!");
            }
            else
            {
                Console.WriteLine("Good night...!");
            }
        }
    }
}
0
ответ дан 28 November 2019 в 22:14
поделиться
Другие вопросы по тегам:

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