Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Использование условных операторов в C#

#c_sharp


using System;

namespace MyFirstProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            int myNum = 5;
            if (myNum = 5)
            {
                Console.WriteLine("5 = 5");
            }
            Console.ReadLine();
        }
    }
}


Что здесь не правильно? Подчеркивает красным myNum = 5 после ключевого слова if.
    


Ответы

Ответ 1



Вместо присвоения if (myNum = 5) ^^^ здесь должно быть сравнение if (myNum == 5) ^^^^ Также вы могли бы вывод на консоль сделать более содержательным. Например Console.WriteLine("myNum == 5 is {0}", myNum == 5);

Ответ 2



Небольшая заметка о различиях между языками: (myNum = 5) — это выражение присваивания. Оно возвращает присвоенное значение 5 типа int. Однако это значение не приводится автоматически к типу bool. Это сделано специально, чтобы предотвратить такие опечатки, как ваша. Однако, в других языках, например C++, возвращаемый результат автоматически приводится к типу bool, и поэтому может использоваться в различных необычных конструкциях: if (a = 5) //true { ... } if (b = 0) //false { ... }

Комментариев нет:

Отправить комментарий