【发布时间】:2016-10-01 01:32:51
【问题描述】:
您好,我正在编写一个基本程序来查找输入数字是否为素数。我有一个checkPrime(num) 函数,它检查素数并返回true,如果num 是素数,则返回false。现在在我的main() 函数中,我使用条件运算符来缩短代码,但我遇到了一个我不确定的错误。下面是我的代码:
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");
}
}
编译时,我在条件语句行的 while 循环中收到 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";
但我无法理解的是在我的函数中,我想做的只是检查函数的返回值,然后打印输出。那么在我的情况下,这个表达的东西来自哪里。
【问题讨论】:
标签: c# compiler-errors expression conditional-operator