Как с помощью тернарного оператора вывести в консоль сообщение и присвоить значение?

int xxx = (Convert.ToInt32(Console.ReadLine())) == 5 ? Console.WriteLine("win") & 5: Console.WriteLine("loss") & 0;
}

Что мне нужно: Чтобы после ввода цифры, она сравнивалась с цифрой 5,и в случае если число нужное, вывелось сообщение и присвоилось переменной 5,а в противном случае сообщение и присвоилось 0;


Ответы (1 шт):

Автор решения: Dev18

Тернарный оператор возвращает значение по-моему, но он не позволит выполнять несколько операций, таких как И вывод в консоль И присваивание значения переменной одновременно

Хотя технически это можно сделать ---смотрите ответ
@eccs0103 в комментариях, это не является хорошей практикой, так как усложняет понимание кода

В тернарном операторе лучше оставить только присваивание значения, а вывод сообщений сделать до или после него

int input = Convert.ToInt32(Console.ReadLine());
int xxx = input == 5 ? 5 : 0;
Console.WriteLine(xxx == 5 ? "win" : "loss");

вот так тоже можно

 int input = Convert.ToInt32(Console.ReadLine());
 int xxx = input == 5 ? PrintAndReturn("win", 5) : PrintAndReturn("loss", 0);

 int PrintAndReturn(string message, int value)
 {
     Console.WriteLine(message);
     return value;
 }
→ Ссылка