黑马程序员技术交流社区
标题:
输出和我想的不一样?
[打印本页]
作者:
何洪森
时间:
2012-2-6 23:54
标题:
输出和我想的不一样?
本帖最后由 何森 于 2012-2-7 15:49 编辑
在网上面看的,输出结果大家考虑一下是什么?题目在下面
public class Demo{
public static void main(String args[]){
String str = new String("abc") ;
str = 1+2+str+3+4 ;
System.out.println(str) ;
}
}
运行结果为什么是:3abc34呢?
作者:
秦碧
时间:
2012-2-6 23:58
1+2+str+3+4的顺序为:
1+2=3 这里的+为加法运算符
3+str="3abc" 这里及以下的+为字符串连接运算符
"3abc"+3="3abc3"
"3abc3"+4="3abc4"
作者:
陈时峰
时间:
2012-2-7 00:00
我是这样认为的, str = 1+2+str+3+4 ;按照运算的顺序先算1+2=3是int型
然后3+str也就是3+"abc"会把int型的3转换成String型的"3",结果为"3abc"
然后同样的道理"3abc"+3="3abc3" 最后"3abc3"+4="3abc34"
作者:
张建银
时间:
2012-2-7 00:03
1*(2+str)+3= ?
作者:
Joyuang
时间:
2012-2-7 00:07
1+2+str+3+4
执行顺序是,从左到右,首先1+2,得到3,然后+str,这时候str是个字符串,碰到字符串,int类型自动转换成String类型,然后+3然后+4,都是以字符串的形式相加的。
在运算中,一旦碰到了字符串,输出都是字符串。
作者:
老罗
时间:
2012-2-7 00:11
钱兆元 发表于 2012-2-7 00:07
1+2+str+3+4
执行顺序是,从左到右,首先1+2,得到3,然后+str,这时候str是个字符串,碰到字符串,int类型 ...
楼主可以改成已解决了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2