Привет Я писал основную программу, чтобы узнать, является ли номер ввода простым или нет. У меня есть функция checkPrime(num)
, которая проверяет простое число и возвращает true
, если num - это простое else возвращает false
. Теперь в моей функции main()
я использовал условный оператор, чтобы сократить код, но я получаю сообщение об ошибке, о котором я не уверен. Ниже мой код:Ошибка условного оператора C# Только назначение, вызов, приращение, декремент, ожидание и новые объектные выражения могут использоваться как оператор
static void Main(String[] args) {
int n = Int32.Parse(Console.ReadLine());
while (n-- > 0) {
int num = Int32.Parse(Console.ReadLine());
(checkPrime(num) == true) ? Console.WriteLine("Prime") : Console.WriteLine("Not Prime");
}
}
Когда я компилирую, я получаю ошибку как Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement
в мое время цикла на условной линии операторов. Я не уверен, что мне не хватает. Существует аналогичный вопрос here, и люди ответили, что строка условного оператора является выражением, а не выражением, поэтому для значения выражения должен быть какой-то вид или присвоение. Тот же вид примера приведен в MSDN reference, где объяснение делает что-то вроде этого
// ?: conditional operator.
classify = (input > 0) ? "positive" : "negative";
Но я не могу понять, в моей функции всё, что я пытаюсь сделать, это проверить возвращаемое значение функции, а затем распечатать вывод. Итак, где это выражение происходит в моем случае.
Возможный дубликат [Метод вызова с использованием тернарного оператора] (http://stackoverflow.com/questions/5490095/method-call-using-ternary-operator) – Peter