++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++) { }