黑马程序员技术交流社区

标题: 关于println问题 [打印本页]

作者: 咪咪    时间: 2011-11-8 18:16
标题: 关于println问题
int i=0;
system.out.println(i++);可以运行

system.out.println((i++));可以运行
system.out.println((i++)++);报错,为什么啊?
作者: 王德云    时间: 2011-11-8 18:30
编译器不通过.System.out.println((i++)++);+号可以用来运算,也当作连接符,那你这样写你说编译器是要进行运算好呢,还是当作连接符呢?

作者: qy    时间: 2011-11-8 18:39
i++本来就是一个运算式,那么运算式怎么可以自己加自己呢
作者: 坚强    时间: 2011-11-8 22:16
你这叫jvm情何以堪,是运算i++这个式子还是当作连接符
作者: 肖瑞军    时间: 2011-11-8 22:32
本帖最后由 肖瑞军 于 2011-11-8 23:02 编辑

system.out.println((i++)++);   JVM编译器会把(i++)后的第一个 + 当做连接符,输出语句从左向右执行代码 。+ 之后没有连接到任何东西 反而又连接一个 + ,当然编译通不过了!!  
作者: 黄湘怡    时间: 2011-11-8 22:39
你是不是想让 i++后在加一次?你可以这样(i++)+1,这样是可以的
作者: 804404980    时间: 2011-11-9 00:35
system.out.println((i++)++);  可以改成system.out.println((i++)+"+");  右面就多一个加号了。  
作者: 胡文杰    时间: 2011-11-9 00:35
你(i++)后面的+就会被编成看做连接符这样写就行了System.out.println((i++)+(i++))
作者: 李龙龙    时间: 2011-11-9 02:07
自增,自减为单目运算符,要求只能用于变量,不能用于常量或表达式。结合方向从右到左。
作者: 泼孩    时间: 2011-11-10 19:42
编写代码前为神马不想清楚自己想要神马结论呢?进行下需求分析,了解自己的需求后再去试着编写代码吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2