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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xxzlhx 中级黑马   /  2015-3-9 14:19  /  847 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
System.out.println("5+5="+5+5);  //5+5=55
System.out.println("5+5="+(5+5));//5+5=10
上面的两个例子哪位能给我解释一下吗?我脑子还是理解不了。

7 个回复

倒序浏览
System.out.println("5+5="+5+5);  //5+5=55
大楷这里的"5+5="+5+5最后面的加号是连接而不是加法运算
回复 使用道具 举报
双引号中是字符串,加号是字符串拼接,(5+5)没有双引号不能作为字符串输出啊,只能作为常量,so。。。
回复 使用道具 举报
这两个输出主要看后面5+5的运算级,加上括号具有优先级,和数学运算类似
回复 使用道具 举报
"5+5="+5+5是把两个字符5连接,"5+5="+(5+5)添加了括号以后,5+5的优先级提高,先对5+5进行算数运算,
所以输出结果分别是55和10
回复 使用道具 举报
System.out.println("5+5="+5+5); //"5+5="为字符串,+号时将5向上转型,变为字符串,编程字符串5+5=5,再使用+,前面同为字符串,故最后结果为5+5=55
回复 使用道具 举报
System.out.println("5+5="+5+5); //"5+5="为字符串,+号时将5向上转型,变为字符串,编程字符串5+5=5,再使用+,前面同为字符串,故最后结果为5+5=55;System.out.println("5+5="+(5+5));//()优先级比较高,进行算术运算,然后再转型字符串型,得出最后结果
回复 使用道具 举报
System.out.println("5+5="+5+5); //"5+5="这是字符串,字符用+号链接,此时+号就是链接字符的,所以第一个遇见的5变为字符串,连接之后形成“5+5=5”,然后这个字符串又碰到+号,继续将第二个5变成字符串,从而变成5+5=55。System.out.println("5+5="+(5+5));//5+5=10,因为()的运算优先级比较高,所以先算()内的,则变成“5+5=”+10,此时原理同上一个,10也变成了字符串与“5+5=”相连接。这个就是俩个的差异,数据类型的转换问题。希望解答对你有帮助。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马