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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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,求详细分析步骤

6 个回复

倒序浏览
判断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
回复 使用道具 举报
首先得搞清楚"++"或"--"在前面与在后面的区别
"++"或"--"在前面  变量值自身+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;

回复 使用道具 举报
先do  再   while    ,   不管while 是真是假   先do一下   。知道吗?所以  x=5.
回复 使用道具 举报
记住do~while是先执行,再判断就行了
回复 使用道具 举报
当While条件为真时执行do里面的语句,i++是先引用后加,二j--是先减后引用。第一步,i=1和j=9比较,此后i=2,j=9;按照此步骤进行,便可得到最终的结果,即i=5,j=6.
回复 使用道具 举报
自己分析,进步更快,do while 形式的循环语句,do后面是循环体,while后面是判断条件,为真执行do内语句,为加跳出循环
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马