public class StringOps{
public static void main(String[] args)
{
int x=0,y=1,z=2;
String s="x,y,z";
System.out.println(s+x+y+z);
System.out.println(x+" "+s);
//s+="(summed)=";
s+=" ";
// s=s+" ";
System.out.println(s+(x+y+z));
System.out.println("x");}
}
为什么S+=" "的结果是x,y,z 3
书上说 “int类型的变量在显示之前就进行了求和操作”我一直不太理解
public static void main(String[] args)
{
int x=0,y=1,z=2;
String s="x,y,z";
System.out.println(s+x+y+z);
System.out.println(x+" "+s);
//s+="(summed)=";
s+=" ";
// s=s+" ";
System.out.println(s+(x+y+z));
System.out.println("x");}
}
为什么S+=" "的结果是x,y,z 3
书上说 “int类型的变量在显示之前就进行了求和操作”我一直不太理解
这个表达式应该是从右至左进行运算的吧
是输出的时候先计算括号里的
s在上一步+=的时候变成了x,y,z空格
所以输出就是x,y,z空格3
3是x+y+z的计算结果
这句由于有(),会优先算出括号的值,这样就为(0+1+2)=3,再S+(x+y+z)之后,就变成了x,y,z空格3
String ss = "x,y,z";
ss = ss + x + y + z; // 其结果应该是:x,y,z012
ss += x + y + z; // 其结果应该是:x,y,z3
SO...