A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

                class Example {
                  public static void main(String[] args){
                    int i=1,j=10;
                    do{
                      if(i++>--j) continue;
                    } while (i<5);
                    System.out.println("i="+i+",j="+j);
                  }
                }
                A. 打印输出 i=6,j=5
                B. 打印输出 i=5,j=5
                C. 打印输出 i=6,j=4
                D. 打印输出 i=5,j=6
                E. 打印输出 i=6,j=6

9 个回复

倒序浏览
  1. class Demo2
  2. {
  3.         public static void main(String[] args)
  4.         {  
  5.                 /*
  6.                 第一次 : 1>9  while(2<5);
  7.                         第二次 : 2>8  while(3<5);
  8.                                   3>7  while(4<5);
  9.                                           4>6  while(5<5)false;
  10.                                           所以 i=5;j=6;
  11.          */       
  12.                 int i=1,j=10;
  13.             do{
  14.                 if(i++>--j)
  15.                                   continue;
  16.                } while (i<5);
  17.        System.out.println("i="+i+",j="+j);
  18.         }
  19. }
复制代码
回复 使用道具 举报
说在重点上了,我也没有想明白?一起关注答案吧……
回复 使用道具 举报

非常感谢,看了你的分析……突然明白了……
回复 使用道具 举报
当i=5的时候,循环才跳出,而此时循环已经经历了四次,所以j就自减了四次,故j=6
回复 使用道具 举报
j++ 先判断在自增
++j  先自增再判断
回复 使用道具 举报
经过每次循环,i加1,j减1,第一次循环结果是2和9,第二次是3和8,第三次是4和7,第五次出来是5和6,这是i就不满足循环条件了,跳出循环,所以结果是5和6。
回复 使用道具 举报
齐浩 中级黑马 2015-3-23 14:16:25
8#
(i++>--j)  这个大于号是不是写错了,应该是小于号吧
回复 使用道具 举报 1 0
因为是i++  所以是先获取i值,i值再自加,所以i是从1开始,--j是先对j自减在获取值,所以j是从9开始。到程序每次结束时,i值会加1,j值不变
回复 使用道具 举报
++在变量前与变量后问题,++在变量后先运算在自增,++在变量前,先自增在运算
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马