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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈原野 中级黑马   /  2013-3-21 14:06  /  1292 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈原野 于 2013-3-21 19:18 编辑

设int x = 2 , y , z; ,执行z=y=x--;后变量Y的值是多少?集体讲解下(需要详细的运算步骤)

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-21 19:11

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览

回帖奖励 +1

int x = 2 , y , z; ,执行z=y=x--;
//z=y;   y=x--;
所以 y=2,  z=2, x=1;
x--是先把x原来的值2赋给y,然后再自减。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

回帖奖励 +1

x=1
y=2
z=2
x在没有变化的时候赋值给了y和z,所以y=z=2,x自减1,为1

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
y=2,  z=2, x=1
y=x-- 执行时,先把x的值赋给y,再自减,然后赋值给自己
如果y=--x,执行的时候先执行x自减赋值给自己,然后给赋值给y。

第一:--是单目运算符,优先级是高于=的,所以是先执行--。
第二,x--返回值是(x-1),是表达式而非变量
第三,--x的返回值是x,是变量

如果你理解了的话,可以试着解释一下
x++=y++
++x=++y
++x=y
呵呵

回复 使用道具 举报
王瑞 发表于 2013-3-21 14:37
y=2,  z=2, x=1
y=x-- 执行时,先把x的值赋给y,再自减,然后赋值给自己
如果y=--x,执行的时候先执行x自 ...

不好意思,丢人了。我把c语言的一些语法带到java来了。
x++=y++
++x=++y
++x=y
这个貌似编译不通过。我再研究一下,不好意思了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
楼主最好把代码写入代码框中,这样看着清晰些,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马