急!!!!!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
这是为什么???????
最新回答
锁骨草莓印

2024-07-02 01:00:31

首先,这个跟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”

而且这种情况就从左到右,依次看“+”号前后有没有字符串出现就行了。
爱如丶泡沫般消逝

2024-07-02 06:04:26

在System.out.println()里面是可以输入语句的,比如x+y就是一个语句,是一个可以执行的语句,当println进行输入的时候会对这个语句进行计算。语句就是不是“”包含的就可以进行计算。
明晨紫月

2024-07-02 12:06:51

基本算法是有优先级的,这里是按正常顺序执行,字符串+数字=字符串,字符串再+数字=结果字符串。 字符串+(数字+数字)优先级:小括号》正常顺序
霸气御姐范

2024-07-02 00:04:31

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一样),仅供参考。。。
一生玺爱

2024-07-02 04:43:46

优先级一样从左开始,前面2个int型相加,自然是5+2等于7,然后数字与字符串相加,就不是加法,而是串成一个字符串变成7k,后面同理,在优先级一样的情况下,从左开始,字符串与数字串成新的字符串,输出是abc5433