好奇这是咋回事求解答

  1. System.out.println("a="+a)中的 +a 是啥意思
  2. 为啥子 +a 换成 a+ 就出现错误了

就是把a的值也打印出来,字符串+数字,会把后面数字也变为字符串,然后拼接在一起。

如果+a变成a+,那前面这个字符串"a="就无法与后面的表达式a+组合形成合法的表达式,所以会出现编译报错。

测试代码如下:

参考链接:


public class StringAddNumTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a = 3;
        System.out.println("a="+a);
    }

}


img

  • 在Java中,"+"符号既可以表示加法运算,也可以表示字符串的连接操作。在System.out.println("a="+a)这行代码中,"+"符号是字符串连接操作的意思,它将字符串"a="和变量a连接起来,形成一个新的字符串输出到控制台上。

  • 如果将+a改为a+,则会出现编译错误,因为a+被解释为加法运算,而在加法运算中,"+"符号要求两侧的操作数必须是数值类型的,而a是一个变量,它的类型可能是任意类型,因此编译器无法将a+解释为一个合法的表达式。

  • 总之,在字符串连接操作中,"+"符号的左右两侧可以是任意类型的表达式,它们将被自动转换为字符串类型,并连接成一个新的字符串。而在加法运算中,"+"符号的左右两侧必须是数值类型的表达式,否则会出现编译错误。