私は C の初心者で、今、TicTacToe ゲームの古典的な例を読んでいます。このreturnステートメントが何をするのかよくわかりません:
{.....
return (ch == X) ?O :X;
これは、変数 ch の条件ステートメントでなければなりません (私の場合、プレーヤー (X または O) を表しますが、その意味についてはわかりません。誰か教えてください。それは何をしますか?
その意味は
if (ch == X)
return O;
else
return X;
これは、他の多くの演算子とは異なり、オペランドを 1 つまたは 2 つではなく 3 つ取るため、三項演算子と呼ばれます。ブール条件と 2 つの値。あなたの例では、ブール条件(ch == X)
が真であると検証された場合、O は演算子の結果です。それ以外の場合、X が結果です。
これは次のように書き換えることができます。
if (ch == X)
return O;
else
return X;
ch
等しい場合は、それ以外の場合はX
returnを返します。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));
}