黑马程序员技术交流社区

标题: System.out.println(1+2+"java"+3+4); [打印本页]

作者: Marx_D    时间: 2015-8-3 21:35
标题: System.out.println(1+2+"java"+3+4);
本帖最后由 Marx_D 于 2015-9-25 10:25 编辑

System.out.println(1+2+"java"+3+4);

输出结果为啥是3java34


作者: 风华正茂    时间: 2015-8-3 21:38
前面的加号是相加,后面的加号是连接符
作者: chao超    时间: 2015-8-3 21:39
前面数相加是3,后是字符串java,直接输出,因为有字符串,所以再用+号连接的都直接输出就可以了
作者: Marx_D    时间: 2015-8-3 21:40
chao超 发表于 2015-8-3 21:39
前面数相加是3,后是字符串java,直接输出,因为有字符串,所以再用+号连接的都直接输出就可以了 ...

是不是老毕的视频有讲解?我怎么没发现那?但是一时理解不了那/
作者: chao超    时间: 2015-8-3 21:42
Marx_D 发表于 2015-8-3 21:40
是不是老毕的视频有讲解?我怎么没发现那?但是一时理解不了那/

我没怎么看老毕的视频,这个知识点上课老师会讲
作者: Marx_D    时间: 2015-8-3 21:44
chao超 发表于 2015-8-3 21:42
我没怎么看老毕的视频,这个知识点上课老师会讲

哦,我今天偶然看到了。。但是一时有点想不通。
作者: chao超    时间: 2015-8-3 21:45
Marx_D 发表于 2015-8-3 21:44
哦,我今天偶然看到了。。但是一时有点想不通。

恩恩
作者: Clouddd    时间: 2015-8-3 21:54
当初我看书的时候,学到只要遇到String类型就会向String类型转,具体的你需要了解各种类型相遇和自动转换的顺序。所以在这里1+2+"java"+3+4,从左到右顺序来:前面的1+2是int 类型之间的相加,但是遇到了"java"后就变成了String类型,然后String类型(即"3java")遇到了int类型(3+4),根据刚刚开头将的规则,int会自动变为String类型,所以后面就是字符串之间的连接了。希望对你有用
作者: 墨琰    时间: 2015-8-3 22:03
前边1+2结果为3,然后有一个字符串拼接符号+连接字符串java,这时候结果为一个字符串3java,接着又是一个字符串连接符(+)加3结果也是也个字符串,继续连接4,所以结果为3java34.个人见解,望指见!
作者: Marx_D    时间: 2015-8-3 22:28
墨琰 发表于 2015-8-3 22:03
前边1+2结果为3,然后有一个字符串拼接符号+连接字符串java,这时候结果为一个字符串3java,接着又是一个字 ...

受教,懂了。
作者: 时光游戏    时间: 2015-8-3 22:44
+可以的运算符,也可以是连接符
作者: 崔宝文    时间: 2015-8-3 23:34
因为是以字符串的形式输出了
作者: 453203489    时间: 2015-8-3 23:36
8楼正解比较详细,  从左到右自己看,  整形+整形就是整形,   整形+字符串 = 字符串,  之后的都是字符串+整形。
作者: 陈冬雪    时间: 2015-8-4 00:24
字符串之前的加号,做加法,后面的是连接符
作者: 知行合意    时间: 2015-8-4 00:26
数字相加还是数字,一旦遇到字符串,字符串之后的加号就会变成连接符号,即字符加字符还是字符。
作者: 冲吧,小怪兽    时间: 2015-8-4 00:45
当初我也是纠结这个问题,后来看了好几个老师的视频才明白
作者: kissfrd    时间: 2015-8-4 01:07
这个老毕的视频有讲的,就是字符串连接符
作者: 流水王朝    时间: 2015-8-4 11:49
学习了~
作者: hellojavacode    时间: 2015-8-4 12:09
首先1+2虚拟机默认是值得相加,当碰到字符串后,+就变成了字符串连接符,3java就是字符串了,然后+3,变成了3java3,然后+4,变成了3java34了
作者: yangkai69    时间: 2015-8-4 12:36
因为在程序编译运行时,第一个加号左右两边都是int类型的数据,所以相加产生结果3。接着遇到字符串java,int的3和字符串java之间的加号就变成了连接符,所以直接被连接运算,就是3java。再往后,字符串3java和int的3,加号继续作为连接符的角色出现,得到3java3,再往后是字符串3java3和int4,加号也是作为连接符,所以结果就是3java34
作者: STARlove    时间: 2015-8-5 22:37
sofa!!!!!!nice   
作者: wx_HWRW5aF7    时间: 2015-8-5 22:57
从左到右一次运算  字符串后面的+号是连接符
作者: wx_HWRW5aF7    时间: 2015-8-5 22:58
从左到右一次运算  字符串后面的+号是连接符
作者: 一叶泛舟    时间: 2015-8-5 23:03
前面java认为是int值相加,后面的当做是字符串连接符了
作者: Glc90    时间: 2015-8-5 23:09
前面的加号是相加,后面的加号是连接符,这个是加号的位置和字符串之间位置决定的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2