小白提问 初级有关问题
public class test1114 {
public static void main(String[] args){
System.out.println("5+5="+5+5);//5+5=55 这里我看不懂啊 因为这里多了个加号所以系统认为这2个5是字符串?
System.out.println(5+5+"=5+5");// 这里有疑问 为什么答案是 10=5+5 为什么不是55=5+5? +号不是连接字符串的符号吗 怎么会让他们相加 因为比上面少了个加号?
}
}
------解决思路----------------------
依次运算啊,然后把结果返回打印
按照结合律,"5+5="+5+5从左往右,5+5是字符串,遇到int,int转为string,再遇到int,再转为string
而5+5+"=5+5",先是int,所以不会被提升什么的,遇到+5,还是int,变为10,10遇到string,被提升为string,变成字符串的10,后面的不多说
要想改变第一个输出,就得改变优先级"5+5="+(5+5)这样就OK了
------解决思路----------------------
http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html(运算符优先级)
还有当字符串String与基本类型相加的时候,基本类型默认会自动转换成字符串