哥们,咱不要搞那么容易误解的i
int i=3; i=i++; System.out.print("i="+i);
打印的i,咱们换个变量名a就好理解了。int i=3; a=i++; System.out.print("i="+a);
a=i++和a=++i
这两个表达式,运行完了,有一个共同点就是,i都会自增1,我说的是运行完了之后,i=i+1;
不同的是:a=i++运行完之后,a的值是没有自增之前的i,即a=i,i=i+1。这个是有执行顺序的,就是先对i自增,再赋值给a,赋的值是i没有自增之前的值。
而a=++i运行完之后,a的值是自增之后的i,即i=i+1,a=i。同样先对i自增,再赋值给a,赋的值是自增后的i值。
i=i++;就是把没有自增的i值赋给i,意思就是说i本来已经自增为4了,后来又把没自增之前的3赋给了i,i就成了3。
输出语句中的+是连接符,不是运算符,如System.out.print("p的名字"+p.name) |