public class test {
   public static void main(String []arg){
        int i;
        for(i=1;i<3;i++){
        System.out.println(i);
        System.out.println(i++);
        System.out.println(i);
        }
        System.out.println(i);
  }
}
为什么第三个i是等于3而不是2?

解决方案 »

  1.   

    public class test {
      public static void main(String []arg){
      int i;
      for(i=1;i<3;i++){//第二次++值变成3
      System.out.println(i);
      System.out.println(i++);//第一次++ 值变成2
      System.out.println(i);
      }
      System.out.println(i);//循环结束输出i的值 3
      }
    }
      

  2.   

    i++  等价于  i=i+1; public static void main(String []arg){
      int i;
      for(i=1;i<3;i++){//第二次++值变成3
      System.out.println(i);
      System.out.println(i++);//第一次++ 值变成2
      System.out.println(i);
      }
      System.out.println(i);//循环结束输出i的值 3
      }有什么不明白的地方吗?
      

  3.   

     for(i=1;i<3;i++) 我觉得这里很关键  初始化;条件;运算; 执行顺序 是   初始化==》运算==》判断条件成立与否
      

  4.   

     “for(i=1;i<3;i++){//第二次++值变成3”
    那为什么第一次++不是在这里开始?
      

  5.   

    “for(i=1;i<3;i++){//第二次++值变成3”
    那为什么第一次++不是在这里开始? 啥意思,表示理解不了啊
      

  6.   

    public class test {
      public static void main(String []arg){
      int i;
      for(i=1;i<3;i++){
      System.out.println(i);//循环开始,判断i是否小于3,结果为true,执行第一句后输出1,接着执行下一句(System.out.println(i++),此句先输出i=2
      System.out.println(i++);
      System.out.println(i);然后再执行此句输出i=2.循环结束,i自加1得到3,接着再判断i是否小于3,结果是false,则跳出for循环,执行最后一句System.out.println(i),输出3.
      }
      System.out.println(i);
      }
    }
    这是楼主要的答案???