首页 新闻 会员 周边 捐助

i++问题的冲突

0
[已解决问题] 解决于 2014-01-27 13:51

int I = 3;
I = I + I++ + ++I;
以上代码在Java/C#/JavaScript中均输出11,但在PHP中却输出12,PHP的计算和替他三种有什么不同?百思不得其解,求指点!

灿飞屋的主页 灿飞屋 | 初学一级 | 园豆:5
提问于:2013-03-28 16:59
< >
分享
最佳答案
0

++i是说在执行这个表达式之前i+1,i++是这个表达式执行之后i+1,所以整个的运算应该是 i = 4+3+4,但php我不太熟,所以不清楚是怎么运算的,Java/C#/Js都采用的是C语言的运算方法

奖励园豆:5
飞鸟_Asuka | 菜鸟二级 |园豆:393 | 2013-03-29 00:06

怎么可能是 4+3+4  哪里来的4

prison | 园豆:298 (菜鸟二级) | 2013-03-29 09:46

@prison: 搞清楚了,PHP计算表达式中,同一个变量如果出现过多次,它的值由第二个参与计算的变量决定

$i = 3;
$a = $i + $i++ + ($i+ ++$i);
echo $i,'#',$a;//5#17,a=4+3+(5+5))
灿飞屋 | 园豆:5 (初学一级) | 2013-03-29 11:44

@prison: Java中是3+3+5,PHP中是4+3+5

灿飞屋 | 园豆:5 (初学一级) | 2013-03-29 13:01

Java中是3+3+5,PHP中是4+3+5

灿飞屋 | 园豆:5 (初学一级) | 2013-03-29 13:02

@灿飞屋: 我是反驳楼上 说java 是434的说法

prison | 园豆:298 (菜鸟二级) | 2013-03-29 16:46
其他回答(5)
1

i++的值的问题吧  前三种是 i = 3 + 3 + 5 后一种可能是 i = 3 + 4 + 5

prison | 园豆:298 (菜鸟二级) | 2013-03-28 17:22

Java中是3+3+5,PHP中是4+3+5

支持(0) 反对(0) 灿飞屋 | 园豆:5 (初学一级) | 2013-03-29 13:02

@灿飞屋: php学过一点点。回答的有误,sorry。

支持(0) 反对(0) prison | 园豆:298 (菜鸟二级) | 2013-03-29 16:49
0

不是都很懂,只是觉得按“++”换成“+1”来说,以上应该是3+3+1+1+3与3+3+1+1+4,而PHP中i++将i值修改了?等大神

Lee-Nux | 园豆:232 (菜鸟二级) | 2013-03-28 22:59

Java中是3+3+5,PHP中是4+3+5

支持(0) 反对(0) 灿飞屋 | 园豆:5 (初学一级) | 2013-03-29 13:02
0

运算符顺序的问题

chenping2008 | 园豆:9836 (大侠五级) | 2013-03-29 09:49
0

前三种是3+4+4

少年学编程 | 园豆:3 (初学一级) | 2013-04-12 17:09
0

楼主如果去用python语言去测试一下会发现答案是:9

倾杯天涯 | 园豆:206 (菜鸟二级) | 2013-04-23 12:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册