C# Switch Case с инструкциями if, не возвращающими мне консоли .WriteLines - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь создать простой случай переключения с кодом If-Statements.

Проблема:

Я не получаю никакого значения обратно.

Например:

Если я поставлю int Temperature = 0; Код должен вывести «Es ist kalt». Но моя консоль ничего не отображает.

using System;

namespace SwitchCase
{
    class Program
    {
        static void Main(string[] args)
        {
            int Temperatur = 25;

            switch (Temperatur)

            {
                    case 1:
                    if (Temperatur <= 0)
                    {
                        Console.WriteLine("Es ist kalt");
                    }
                    break;
                    case 2:
                    if (Temperatur >= 25)
                    {
                        Console.WriteLine("Es ist überdurchschnittlich warm");
                    }
                    break;
                    case 3:
                    if (Temperatur <= 13)
                    {
                        Console.WriteLine("Es ist mild");
                    }
                    break;




            };

        }
    }
}

Ответы [ 3 ]

3 голосов
/ 02 февраля 2020

Ваш код не имеет особого смысла. Когда Temperatur точно равно 1 или 2, оно не может быть меньше или равно 0, ни больше или равно 25. Так что Temperatur не имеет значения, которое получает любую из первых двух выбранных ветвей switch и дополнительно удовлетворяет if в этой ветви.

Просто используя if и else if делает то, что вы, вероятно, хотите:

...
if (Temperatur <= 0)
{
    Console.WriteLine("Es ist kalt");
}
else if (Temperatur <= 13)
{
    Console.WriteLine("Es ist mild");
}
else if (Temperatur >= 25)
{
    Console.WriteLine("Es ist überdurchschnittlich warm");
}
...
2 голосов
/ 02 февраля 2020

ваш блок if никогда не достигается с температурой = 0.

у вас есть случаи только для температур 1, 2 и 3 (случай 1 :), поэтому, если температура равна чему-то еще, то 1,2 или 3 Ничего не произойдет в вашем коде.

просто используйте, если / не выключите:

                if (Temperatur <= 0)
                {
                    Console.WriteLine("Es ist kalt");
                }
                else if (Temperatur <= 13)
                {
                    Console.WriteLine("Es ist mild");
                }
                else
                {
                    Console.WriteLine("Es ist überdurchschnittlich warm");
                }
1 голос
/ 02 февраля 2020

Вам просто нужно выражение if:

using System;

public class Example
{
   public static void Main()
   {
      if (Temperatur <= 0)
{
    Console.WriteLine("Es ist kalt");
}
else if (Temperatur <= 13)
{
    Console.WriteLine("Es ist mild");
}
else if (Temperatur >= 25)
{
    Console.WriteLine("Es ist überdurchschnittlich warm");
}
   }
}
...