#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 { ... }
Комментариев нет:
Отправить комментарий