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类型的变量在显示之前就进行了求和操作”我一直不太理解 

解决方案 »

  1.   

    s+x+y+z
    这个表达式应该是从右至左进行运算的吧
      

  2.   

    s+=" ";   // S:x,y,z (一个空格)System.out.println(s+(x+y+z)); // 带()的优先做 然后和string相加 转成string :x,y,z 3
      

  3.   

    2楼的说的没错
    是输出的时候先计算括号里的
    s在上一步+=的时候变成了x,y,z空格
    所以输出就是x,y,z空格3
    3是x+y+z的计算结果
      

  4.   

      System.out.println(s+(x+y+z));
    这句由于有(),会优先算出括号的值,这样就为(0+1+2)=3,再S+(x+y+z)之后,就变成了x,y,z空格3 
      

  5.   

    就是说s+=" " 等价于(s+(x+y+z))? 
      

  6.   

    int x = 0, y = 1, z = 2;
    String ss = "x,y,z";
    ss = ss + x + y + z;  // 其结果应该是:x,y,z012
    ss += x + y + z;  // 其结果应该是:x,y,z3
    SO...