-1

ポストインクリメント演算子の制御フローは何ですか?

public class PostIncrement
{
    public static void main(String[] args)
    {

        int a = 0;
        for(int i=0;i< 2 ;i++)
        {
            a =a++;     
        }

        for(int i=0 ;i< 1;i++)
        {
            a++;
        }

        System.out.println("Result2 :"+" "+a);        
    }

}

結果は 0 と 1 のようなものです

なぜそうなのですか?

4

2 に答える 2

0

後置演算子++は、ステートメントの完了後に実行されます。

何も変更されていないため、最初に値をa出力するとゼロが出力されます。次に、a の値をインクリメントして 1 回実行する for ループに入ります。そのステートメントには他の命令がないため、ポストインクリメントであることは実際には問題ではありません。の値aは現在1です。

印刷し1ます。

余談ですが、内部変数iが外部変数を隠しているため、コードは実際には機能しません。そのため、再宣言するとコンパイラ エラーが発生しますi。ここでは、 などの別の変数を意味すると想定しましたj

于 2013-05-21T08:32:00.423 に答える
0

a++ は、最初にその特定のステートメントで a の値を使用し、次にそれをインクリメントします。

たとえば。

a=0;
sysout(a++);
sysout(a);

結果は 0 と 1 になります。

したがって、あなたの場合、2番目のforループを次のように記述した場合

      for(int i=0 ;i< 1;i++)
         {
              sysout(a++);
         }

0 と 0 と 1 を出力します。

于 2013-05-21T08:36:11.007 に答える