急!!!!!java System.out.println()输出规则!!!!!

public class Test {
public static void main(String[] args) {
int x = 5;
int y = 2;
int a=5,b=4,c=3;
System.out.println(x+y+"K");
System.out.println("abc"+a+b+c+3);
}

}
结果是:
7K
abc5433
这是为什么???????

首先,这个跟println输出规则没什么关系
这个是跟运算规则和“+”连接符有关
其次x,y,a,b,c都是int型,也就是可用“+”号计算的类型
最后
第一个输出x+y+"K"
从左到右先计算x+y,结果为7是int类型,这里的"+"号是计算符号,而后“+”号是当字符串连接符号处理所以最后int的7和string类型的“K”连接后生成新的string,“7K”
第二个输出“abc”+a+b+c+3
也是从左到右计算,因为“abc”是字符串,而后跟“+”号是当字符串连接符号处理,所以是“abc5433”
其后的“+”号都当成了字符串连接符号

总之,当“+”号前后有字符串出现时,就当做字符串连接符号处理了。
例如:
int a=1;
String s="a";
System.out.println(a+s);
输出"1a"
System.out.println(s+a);
输出“a1”

而且这种情况就从左到右,依次看“+”号前后有没有字符串出现就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-25
在System.out.println()里面是可以输入语句的,比如x+y就是一个语句,是一个可以执行的语句,当println进行输入的时候会对这个语句进行计算。语句就是不是“”包含的就可以进行计算。
第2个回答  2012-09-25
基本算法是有优先级的,这里是按正常顺序执行,字符串+数字=字符串,字符串再+数字=结果字符串。 字符串+(数字+数字)优先级:小括号》正常顺序
第3个回答  2012-09-25
System.out.println("abc"+a+b+c+3); 在java中基本类型的值加上一个字符串后会自动转换为字符串,如1+“1” 最后会是“11”,如果你要输出想要的可以写成这样System.out.println("abc"+(a+b+c+3));或System.out.println(a+b+c+3+"abc");(就像你第一个println一样),仅供参考。。。
第4个回答  2012-09-25
优先级一样从左开始,前面2个int型相加,自然是5+2等于7,然后数字与字符串相加,就不是加法,而是串成一个字符串变成7k,后面同理,在优先级一样的情况下,从左开始,字符串与数字串成新的字符串,输出是abc5433

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网