class Example{
 public static void main(String args[]){
   int i=1,j=10;
  do{
         if(i++>--j)
  continue;
    }while(i<5);
   System.out.print(“i=”+i+”j=”+j);
}
}
程序运行结果:
【答案】
i=5j=6求思路,,非常感谢,,,我推来推去还是推导不出结果,,求大伙帮忙

解决方案 »

  1.   

    加上两句话就一目了然了
    public class dd
    {
        public static void main(String args[])
        {
    int i = 1, j = 10;
    do
    {
        if (i++ > --j)
    continue;
        else //加上这句
    System.out.println("i=" + i + "  j=" + j);//加上这句
    }
    while (i < 5);
    // System.out.println("i=" + i + "  j=" + j);
        }
    }运行结果是这样的:
    i=2  j=9
    i=3  j=8
    i=4  j=7
    i=5  j=6从程序开始,首先执行一次do{}里面的语句,即i加了1,j减少1,当i比j大的时候都continue即结束本次循环,又由于while (i < 5)的作用,当i变到4的时候是最后一次循环(变到5就不能了,此时i已经是5了,同理j已经是6了),故结果是那样。i=2,i=3,i=4,加上之前的一个do,i一共加了4,同理j也一共减了4,故j是6。
    八成是学习C语言的时候老师故意刁娜的
      

  2.   

    过程是这样的:
    i = 1 , j = 10 - 1 = 9; 1 > 9不成立 (执行i++) i=2;i = 2 , j = 9 - 1 = 8; 2 > 8不成立 (执行i++) i=3;i = 3 , j = 8 - 1 = 7; 3 > 7不成立 (执行i++) i=4;i = 4 , j = 7 - 1 = 6; 4 > 6不成立 (执行i++) i=5;需要注意的是i++ 是在这条语句结束后执行i = i +1   ++i是先执行i=i+1再运行语句
      

  3.   

    i++是先计算后输出这个知道把?
    --j是先输出后计算。当i=5,j等于6的时候,把这两个值代到表达式里面去就成了这样:
    class Example{
     public static void main(String args[]){
       int i=1,j=10;
      do{
      if(5++>--6)//i=5的时候,前面的就成了6,而后面的--6的意思是:先输出,也就是输出6之后再计算
      continue; //符合条件,跳出本次循环
        }while(i<5);//执行判断的时候,i的值为5,5不小于5,所以退出循环.
       System.out.print(“i=”+i+”j=”+j);
    }
    }
    我也是新手,不知道分析的对不,参考下把。
    还有另外一种比较麻烦的方式可以推,就是把i和j的值,一个一个带进去.
      

  4.   

    i++是先用再加,输出为5的话比较时候就是4,--j是减了再比较,为什么输出是5和6那时do-while循环里面的条件是i<5的。