我是 c 语言的初学者,现在正在阅读井字游戏的经典示例。我不确定这个返回语句的作用:
{.....
return (ch == X) ?O :X;
这必须是关于变量 ch 的一些条件语句(在我的例子中代表玩家(X 或 O),但我不确定它的含义。谁能告诉我它有什么作用?
它的意思是
if (ch == X)
return O;
else
return X;
这被称为三元运算符,因为与许多其他运算符不同,它不需要一个或两个操作数,而是三个。一个布尔条件和两个值。在您的示例中,如果布尔条件(ch == X)
验证为真,则 O 是运算符的结果。否则,X 是结果。
这可以重写为:
if (ch == X)
return O;
else
return X;
如果ch
等于X
返回O
,否则返回X
。
该... ? ... : ...
运算符称为三元运算符。它是简单 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));
}