私は次のことをしようとしました
i=0;
if (i++ % Max_Col_items == 0 && i !=0)
{
}
i
途中で増加していることを発見
i % Max_Col_items == 0;
i=i+1;
i !=0;
私が最終的に増加を追加するだろうと思ったときi
:
i % Max_Col_items == 0;
i !=0;
i=i+1;
i++
C#でどのように機能するかについての説明を見つけられる人はいますか?
私は次のことをしようとしました
i=0;
if (i++ % Max_Col_items == 0 && i !=0)
{
}
i
途中で増加していることを発見
i % Max_Col_items == 0;
i=i+1;
i !=0;
私が最終的に増加を追加するだろうと思ったときi
:
i % Max_Col_items == 0;
i !=0;
i=i+1;
i++
C#でどのように機能するかについての説明を見つけられる人はいますか?
i++
は、インクリメントされたものではなく、元の値を提供します。次の の使用時に変更が表示されますi
。増分値を取得する場合は、 を使用します++i
。
同じ問題に関する Eric Lippertによる詳細な回答を参照してください。
i++
の値をすぐにインクリメントしますが、i
インクリメント前の値として評価されます。
コード行の終わりまで、値は変更されません。これはi
、期待どおりのように見えます。
それは(あなたが正しく指摘したように)だからです
i % Max_Col_items == 0;
それ自体が操作です。その操作行が ( i の値で) 終了すると、インクリメントが完了します。