这题太简单了,不过我还是不知道为什么,请大家帮忙看看

ttt 2002-02-07 03:22:49
public class Inc{
public static void main(String argv[]){
Inc inc = new Inc();
int i =0;
inc.fermin(i);
i = i++;
System.out.println(i);
}
void fermin(int i){
i++;
}
}
问,输出结果是什么?
我试了一下,是0,为什么啊? 难道 i = i++; 这句执行了以后没起作用?
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
foggy_boy 2002-02-07
  • 打赏
  • 举报
回复
agree to passingguy(英语狂人)!!!
xfe1 2002-02-07
  • 打赏
  • 举报
回复
对 同意楼上各位 就是i++和++i的区别
passingguy 2002-02-07
  • 打赏
  • 举报
回复
my god!!!!!!!!!!!!!!!

the i in main method is not the same as i in fermin

'i' in method fermin(int i) is temple parameter,
and you just pass a value to method fermin, so fermin can not change the value of i.

i = i++
first,
if i =0
i++
i = 1 now.
but the value of (i++) is still 0;
and then, you give this value to i
so , i = 0
zwhhwz 2002-02-07
  • 打赏
  • 举报
回复
i = i++;
执行顺序是首先执行i++ (i的值加1,但是 i++ 本身的值还是i)
然后执行赋值
所以 i 的值又变了回去,还是0
javalearner 2002-02-07
  • 打赏
  • 举报
回复
++操作作了,你没有保存罢了,你存的是原来的value,上面那哥们说得没错。
judgement_sword 2002-02-07
  • 打赏
  • 举报
回复
可是这个++的操作跑到哪里去了呢!!!
zwhhwz 2002-02-07
  • 打赏
  • 举报
回复
同意楼上的
zhiweihua 2002-02-07
  • 打赏
  • 举报
回复
inc.fermin(i);
传的值参,所以I值不变仍是0
i = i++;
首先了解一下 i++ 和 ++i 的区别
i++ 是引用后再加1,++i 加1后再引用
所以 i 值不变仍是0
最后 i 仍是0

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧