public class TestSelfIncrement {
public static void main(String[] args){
int i,j;
i=2;
j=i++ +2;
System.out.println("i="+i + ",j="+j);
}
        
}问题: 
想不明白这段System.out.println( "i= "+   i+   ",j= "+j); 中 逗号,为什么放到",j="中,我试过了,放到其他地方都报错。其实不放逗号运行也没有问题,只是输出结果比较紧凑,估计逗号就是类似空格的作用,可就是想不明白,为什么就放在那个位置呢,感觉那个地方很别扭。
  (初学者)

解决方案 »

  1.   

    因为在双引号里面,无论你放什么符号或者文字进去,系统都不会认错---系统只会认为在""之间的就是一个String类型的字符串.那个逗号只是起到一个分隔的作用而已,没其他的作用。
      

  2.   

    System.out.println( "i= "+ i+ ",j= "+j); 
    楼主怎么会感觉别扭呢,是不是你用中文的原因,我感觉这样挺好的!你说的对,逗号的作用就是把i和j分开,好看些,在这句代码里逗号是括号中字符串的一部分,所以要放在""中了。
      

  3.   

    可以改成System.out.printf("i= "+i+","+"j="+j);其实就是跟这样一样 你感觉这样好看么?
      

  4.   

    问题:  
    想不明白这段System.out.println( "i= "+ i+ ",j= "+j); 中 逗号,为什么放到",j="中,我试过了,放到其他地方都报错。其实不放逗号运行也没有问题,只是输出结果比较紧凑,估计逗号就是类似空格的作用,可就是想不明白,为什么就放在那个位置呢,感觉那个地方很别扭。
    ","加上后就是字符串类型了,它在这里的作用其实你也说了,就是防止输出结果紧凑,就是为了输出看着舒服点,
      

  5.   

    i=2;
    j=i++ +2;--------------------
    i=3 j=4
    --------------------
    首先 i=2
    j=i++ +2
    元算顺序是
    执行j=i   (j=2 i=2)
    执行i++   (j=2 i=3)
    最后执行+2 (j=4 i=3)
    主要是看 a++和 ++a的区别
    b=a++ 是先把a给b 然后 a++
    b=++a 是先把a+1 然后再把结果给b
    还有就是 ++ --比其他运算优先级高  所以上题中++ 比+2先做最后System.out.println( "i= "+ i+ ",j= "+j)
    因为输入括号里需要放一格字符串,以上是一格字符串拼接,其中每引号的i , j是指变量,引号内是字符串
     逗号不起任何作用,就是把式子分开,容易看
    1)i=3j=4 2)i=3,j=4 明显2比1清晰
      

  6.   

    感谢各位大侠了   我觉得之所以觉得别扭 很可能是因为初学还没有那种思维吧  还得继续努力啊
    在此还得提及一下“bao110908”  “j=i++ +2; 不要闲得没事干,把代码写成这样!”这个我不太明白  估计也是思想吧  我还没入门  多谢提醒了