此题结果是0,请高手指点原因 i++是在执行后i=i+1所以fermin(0)=0i=i++=0所以结果0是正确的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单啊。 因为java函数调用是传的值参,你调用fermin不会对main里面的i产生任何影响。而你调用i=i++;是先返回再加,就是说,你i++产生的结果是0,赋值给了i。所以i是0, 但是你如果调用i++,那么i就会加1,虽然这个表达式返回的结果是0。 首先inc.fermin(i);这句并不能改变i的值,因为参数传的是值而非地址i的值究竟是多少,这是++运算符的问题i = i++;可以分解成这样:int j=i++;i=j;如果你明白++运算符作为前置和后置有什么区别的话,那你就知道为什么结果是零了如果不明白,建议找本书看看,ok?i++;可以理解为:i=i+1; i=i++;会产生类似如下的字节码:iload_1iinc 1, 1istore_1所以i还是原来的值 还是不大明白,大家不用讨论fermin(),这个我知道。i = i++;是先赋值,后相加。那么在这个过程中i先被赋0,然后i自相加,产生1,但这个1没有给i, 那么请问这个产生的1到哪里去了?dugang106(冷风细雨) 说单独的i++可以理解为i+=1;就是说自加的结果还是应该给i的,这一点从把句子改成"i++;"再println也可以看出来。但这样解释的话与上面不是矛盾吗?进一步这个例子,如果改成循环做:for(int j=0;j<10;j++) i++;然后println,那么i的值在执行10次循环后依然不会变,还是0.更进一步就是说如果我们把循环改成for(int j=0;j<10;j=j++) 那么这将是一个死循环!请问i=i++和i++的关系应如何解释才能自原其说呢? 在eclipse 中applet JTable显示列名 请各位同行的哥哥姐姐帮帮忙啊!!!!!!!!!!!!!!!!! 一个小游戏问题,大虾请帮我看看。谢谢 JAVAMAIL击活注册用户? 为什么运行java小程序没反映 JTextField如何限制只能输入数字?用什么方法?虚调用哪个包?{再线等!} 请教各位,回答给分。。。。 在java编程中,如何调用DOS命令? 请问如何对这些程序进行修改?(socket编程) 200分,征集投票! JDK1.4 的打印问题
i的值究竟是多少,这是++运算符的问题
i = i++;可以分解成这样:
int j=i++;
i=j;
如果你明白++运算符作为前置和后置有什么区别的话,那你就知道为什么结果是零了
如果不明白,建议找本书看看,ok?
i++;可以理解为:i=i+1;
iload_1
iinc 1, 1
istore_1
所以i还是原来的值
for(int j=0;j<10;j++) i++;
然后println,那么i的值在执行10次循环后依然不会变,还是0.
更进一步就是说如果我们把循环改成for(int j=0;j<10;j=j++) 那么这将是一个死循环!请问i=i++和i++的关系应如何解释才能自原其说呢?