1. ホーム
  2. for-loop

[解決済み】ループ内のプリインクライメントとポストインクライメントの違い?

2022-03-26 13:58:31

質問

に違いはあるのでしょうか? ++ii++ の中に for のループに入るのでしょうか?単に構文の問題なのか?

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

a++はpostfixと呼ばれています。

に1を足すと、古い値を返す。

++aはプレフィックスと呼ばれます。

に1を足すと、新しい値が返されます。

C#:

string[] items = {"a","b","c","d"};
int i = 0;
foreach (string item in items)
{
    Console.WriteLine(++i);
}
Console.WriteLine("");

i = 0;
foreach (string item in items)
{
    Console.WriteLine(i++);
}

出力します。

1
2
3
4

0
1
2
3

foreachwhile ループは、どのインクリメントタイプを使用するかによって異なります。以下のようなforループでは、iの戻り値を使用しないので、違いはない。

for (int i = 0; i < 5; i++) { Console.Write(i);}
Console.WriteLine("");
for (int i = 0; i < 5; ++i) { Console.Write(i); }

0 1 2 3 4

0 1 2 3 4

評価された値が使用される場合、インクリメントのタイプが重要になる。

int n = 0;
for (int i = 0; n < 5; n = i++) { }