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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zclove898 高级黑马   /  2011-11-27 23:18  /  3694 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zclove898 于 2011-11-30 00:58 编辑

  不明白x+y与x+=y有什么不同,为什么在运行一些程序时,x+=y编译通过,而x+y却编译失败?
谢谢了

11 个回复

正序浏览
颜小飞 发表于 2011-11-27 23:38
x+y中的"+"是算数运算或者是两个字符串这间的连接符,而x+=y则中的“+=”是赋值运算符,是表示x =x+y;希望 ...

恩,明白了,谢谢了
回复 使用道具 举报
x+=y是一个赋值表达式,而x+y要根据x、y是什么类型来看是什么,有时表示相加,有时表示连接。要具体情况看!

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
x+y 是x与y的值相加    x+=y  相当于 x=x+y   把x+y的值赋给x

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
肖岑锋 黑马帝 2011-11-28 13:07:49
9#
+=是Java运算符,能够自动转型,而x=x+y不能够自动转型,所以有的时候用x +=y编译通过而用x = x+y编译不通过

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
刘旭 黑马帝 2011-11-28 11:22:42
8#
x+y不是完整语句,x+=y也不一定能通过编译。当x+=y数据类型一致或可以自动转型时,相当与x=x+y,否则,也会报错。

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
刘一扬 黑马帝 2011-11-28 11:04:50
7#
本帖最后由 刘一扬 于 2011-11-28 11:05 编辑

一个赋值  一个只计算 不赋值而已

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
x+=y它相当x=x+y它是又一个赋值步骤的

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
楼上说的对,x+y不是完整语句,+=会让变量直接计算。

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
冯敏 黑马帝 2011-11-28 09:30:22
板凳
这个先要看x,y是什么类型的,
如果x,y为String类型的“+”代表连接符号,
如果是整型的,代表将两数相加
x+=y等价于x = x+y;

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
清秋 黑马帝 2011-11-28 08:12:48
藤椅
x+=y 等价于  x = x+y

而 x+y ,算不上一个完整的语句

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
x+y中的"+"是算数运算或者是两个字符串这间的连接符,而x+=y则中的“+=”是赋值运算符,是表示x =x+y;希望能够帮助你理解!加油

评分

参与人数 1黑马币 +1 收起 理由
zclove898 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马