1

我是 c 语言的初学者,现在正在阅读井字游戏的经典示例。我不确定这个返回语句的作用:

  {.....
     return (ch == X) ?O :X;

这必须是关于变量 ch 的一些条件语句(在我的例子中代表玩家(X 或 O),但我不确定它的含义。谁能告诉我它有什么作用?

4

4 回答 4

6

它的意思是

if (ch == X) 
    return O;
else
    return X;
于 2013-09-19T10:03:06.750 回答
5

这被称为三元运算符,因为与许多其他运算符不同,它不需要一个或两个操作数,而是三个。一个布尔条件和两个值。在您的示例中,如果布尔条件(ch == X)验证为真,则 O 是运算符的结果。否则,X 是结果。

这可以重写为:

if (ch == X)
    return O;
else
    return X;
于 2013-09-19T10:04:41.567 回答
1

如果ch等于X返回O,否则返回X

于 2013-09-19T10:02:59.023 回答
0

... ? ... : ...运算符称为三元运算符。它是简单 if 语句的简写。让我们看几个例子,

奇偶

n % 2 ? printf ("Odd") : printf ("Even");

OR

printf ("%s\n", n % 2 ? "Odd" : "Even");

阶乘

int factorial(int n)
{
    return (n == 0 ? 1 : n * factorial (n - 1));
}
于 2013-09-19T10:17:40.770 回答