1. ホーム
  2. c++

[解決済み] return文に複数の値を含める必要があるのはなぜですか?

2022-02-15 09:36:15

質問内容

return文に複数の値を指定するケースを見たことがあります。 例えば return 8, 10, 6; 私の知る限り、これらの値のうち実際に返されるのは1つだけです。 を使用する利点は何でしょうか? return このように

具体的には、宿題にこんな問題が出てきます。

という文言があります。 return 2 * 3 + 1, 1 + 5; は値 ____ を返します。

必ず6を返すとわかっているのに、なぜこんな書き方をしたのだろう?

素朴な疑問ですが、お許しください。 私はまだプログラミングに多少慣れていないのです。

どのように解決するのですか?

ステートメント return 2 * 3 + 1, 1 + 5; は値を返します。 6 .

この仕掛けは カンマ演算子 をC++で作成しました。詳しくはこちらをご覧ください。 https://en.cppreference.com/w/cpp/language/operator_other

A カンマ演算子 は基本的にカンマで区切られた式のリストで、左から右へ評価され、最後の項目の結果は、全体の カンマ演算子 .

以下は、その方法を示す簡単な例です。 カンマ演算子 が動作します。

int foo() {
    int i = 1;
    return i += 2, i++, i + 5; // This is a comma operator with three items
                               // i += 2 will be evaluated first, then i == 3
                               // i++ will be evaluated second, then i == 4
                               // i + 5 will be evaluate last, and the result is 9
                               // the result of the last item is returned by the return statement
}

int main() {
    std::cout << foo();
    return 0;
}

このコードは9を表示します。