ループ内の事前増分と事後増分の違いは何ですか? 質問する

ループ内の事前増分と事後増分の違いは何ですか? 質問する

++iループ内とループi++内には違いがありますかfor? それは単に構文の問題ですか?

ベストアンサー1

a++ は postfix として知られています。

a に 1 を加算し、古い値を返します。

++a は接頭辞として知られています。

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

foreachループwhileは、使用する増分タイプによって異なります。以下のような 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++) { }

おすすめ記事