为什么是连接而不是算术运算?

lea*_*r98 2 java math types string-concatenation integer-arithmetic

Scanner sal = new Scanner(System.in);
System.out.print("Enter first_salary: ");
int Salary1 = sal.nextInt();

System.out.print("Enter second_salary : ");
int Salary2 = sal.nextInt();

System.out.print("Combined Salary is " + Salary1 + Salary2);
Run Code Online (Sandbox Code Playgroud)

我试图获取用户输入两次,然后打印总和。相反,输出是连接数字而不是实际将它们相加。

Mad*_*ist 7

因为+运算符是从左到右关联的。你的论点相当于明确的

(("Combined Salary is " + Salary1) + Salary2)
Run Code Online (Sandbox Code Playgroud)

由于("Combined Salary is " + Salary1)结果是字符串,因此您将连接字符串。要进行不同的分组,请使用括号调整运算顺序:

System.out.print("Combined Salary is " + (Salary1 + Salary2));
Run Code Online (Sandbox Code Playgroud)