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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李红志 中级黑马   /  2013-3-3 17:57  /  1961 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args){
      int x=3,y=6,a=0;
      while(x++!=(y-=1)){
         a+=1;
          if(y<x)
           break;
}
System.out.print("x="+x+,"y="+y+,"a="+a);
}

评分

参与人数 1黑马币 +6 收起 理由
陈丽莉 + 6 请改成自己的名字~

查看全部评分

9 个回复

倒序浏览
第一次计算while(3!=5) 满足条件a=1
第二次计算while(4!=4)  不满足条件就  就退出了于是a=1;
结束

x++,是先取值在+1。  ++x才是先+1再取值。

如果代码是
public static void main(String[] args){
        int x=3,y=6,a=0;
        while(++x!=(y-=1)){
           a+=1;
            if(y<x)
             break;
  }
  System.out.print("x="+x+",y="+y+",a="+a);
  }

那么a才是2。  

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
像这样的问题不用太纠结,如何硬要纠结了话,你用断点调试一下就可以看出各个值的变化
回复 使用道具 举报
王智威 发表于 2013-3-3 18:24
像这样的问题不用太纠结,如何硬要纠结了话,你用断点调试一下就可以看出各个值的变化 ...

果断不会用断点调试程序,求赐教
回复 使用道具 举报
邢义敏 发表于 2013-3-3 20:22
果断不会用断点调试程序,求赐教

不用着急,打基础的时候还是用editplus,断点调试需要用的eclipse,在张老师基础
回复 使用道具 举报
这个程序主要有两点:
一,是++在前或在后的运算问题:我自己是这样记忆的
++在前就先+1在用(在前面比较牛{:soso_e144:}),++在后就先用后+1(--运算同理)
二,是while循环的问题:while循环要先判断循环条件,满足就执行循环一次再判断。
循环第一次判断条件成立,a+=1只运算一次.
回复 使用道具 举报
因为循环体只执行了一次,所以a=1.  
第二次判断条件时,while(4!=4),条件不满足,跳出循环。但是x++的运算还要进行。所以
x=5,y=4,a=1   
另外 楼主的代码System.out.print("x="+x+,"y="+y+,"a="+a);  ()里的英文半角逗号,位置有问题。会有报错
回复 使用道具 举报
哦 好吧
回复 使用道具 举报
祁振朋 发表于 2013-3-3 23:47
因为循环体只执行了一次,所以a=1.  
第二次判断条件时,while(4!=4),条件不满足,跳出循环。但是x++的运 ...

还真是,第一遍看的时候都没注意到!
回复 使用道具 举报
ls已回答问题,不过while(x++!=(y-=1))个人建议不要这样写。光看逻辑就有点晕。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马