1

私は C の初心者で、今、TicTacToe ゲームの古典的な例を読んでいます。このreturnステートメントが何をするのかよくわかりません:

  {.....
     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

これは、他の多くの演算子とは異なり、オペランドを 1 つまたは 2 つではなく 3 つ取るため、三項演算子と呼ばれます。ブール条件と 2 つの値。あなたの例では、ブール条件(ch == X)が真であると検証された場合、O は演算子の結果です。それ以外の場合、X が結果です。

これは次のように書き換えることができます。

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

ch等しい場合は、それ以外の場合はXreturnを返します。OX

于 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 に答える