黑马程序员技术交流社区

标题: 关于DoWhile的题,请帮忙解答,请写出详细解题步骤,谢谢! [打印本页]

作者: 无所谓啦    时间: 2014-5-29 07:58
标题: 关于DoWhile的题,请帮忙解答,请写出详细解题步骤,谢谢!
public class DoWhile{
        public static void main(String[] args){
                int i = 1,j = 10;
                do{
                        if(i++>--j)
                        break;
                }while(i<5);
                System.out.println("i="+i+",j="+j);
                }
        }                //i=5,j=6,求详细分析步骤


作者: jiang_ming    时间: 2014-5-29 08:27
判断if的时候,i,j=(1,9),(2,8),(3,7),(4,6),而判断while的时候是(2,9),(3,8),(4,7),(5,6),因为x=5,不满足条件,结束循环,打印出x=5,y=6
作者: Hi天天向上    时间: 2014-5-29 13:01
首先得搞清楚"++"或"--"在前面与在后面的区别
"++"或"--"在前面  变量值自身+1或-1 同时把+1或-1 后的变量值给表达式
"++"或"--"在后面  先把变量值给表达式  然后在+1或-1  也就是变量的到的是自增或自减之前的值
这道题中
do{
if(i++>--i)break;//跳出循环}
while(i<5);
执行过程是这样的
  //1.第一次判断  1>9 不成立  此时 i=2,j=9;
  //2.第二次判断  2>8 不成立  此时 i=3,j=8;
  //3.第三次判断  3>7 不成立  此时 i=4,j=7;
  //4.第四次判断  4>6 不成立  此时 i=5,j=6;
当i=5时,不满足i<5条件 退出循环
所以i=5,j=6;


作者: Super__kids    时间: 2014-5-29 13:45
先do  再   while    ,   不管while 是真是假   先do一下   。知道吗?所以  x=5.
作者: pengyu    时间: 2014-5-29 15:47
记住do~while是先执行,再判断就行了
作者: 小坏坏    时间: 2014-5-29 21:04
当While条件为真时执行do里面的语句,i++是先引用后加,二j--是先减后引用。第一步,i=1和j=9比较,此后i=2,j=9;按照此步骤进行,便可得到最终的结果,即i=5,j=6.
作者: 落叶非花    时间: 2014-5-29 21:40
自己分析,进步更快,do while 形式的循环语句,do后面是循环体,while后面是判断条件,为真执行do内语句,为加跳出循环




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2