一道简单java面试题,俺错了

nndasdf 2008-02-18 01:18:52
int i=1;
(i++)+(i++)+(i++)+(++i)+(i++)+(++i)是多少??
哦,shit,我做错了,知道的告诉我结果,还有原理是怎样的
...全文
1549 62 打赏 收藏 转发到动态 举报
写回复
用AI写文章
62 条回复
切换为时间正序
请发表友善的回复…
发表回复
poish 2008-02-28
  • 打赏
  • 举报
回复
这么简单,都错了
dirclstype 2008-02-28
  • 打赏
  • 举报
回复
呵呵,够逻辑的了!
dnnyyq 2008-02-28
  • 打赏
  • 举报
回复
1+2+3+5+7=23
zhaoliang1984 2008-02-27
  • 打赏
  • 举报
回复
是23没错
Y382904800 2008-02-26
  • 打赏
  • 举报
回复
1+2+3+5+5+7=23
好傻好天真啊!
哈哈
supermuder 2008-02-26
  • 打赏
  • 举报
回复
还是简单问题好啊,看有这么多人抢着回答,哈哈!
23
lzhonghua 2008-02-26
  • 打赏
  • 举报
回复
太无聊的题目!这样考有何意义啊!
psyl 2008-02-25
  • 打赏
  • 举报
回复
还行,基础题,应该算是个好基础题 i++和++i知识都在里边
dyy830606 2008-02-25
  • 打赏
  • 举报
回复
23 1+2+3+5+5+7
yyd841122 2008-02-25
  • 打赏
  • 举报
回复
23
一般人都会做错的!~
wuchao911 2008-02-25
  • 打赏
  • 举报
回复
答案是:
23
cgk100 2008-02-25
  • 打赏
  • 举报
回复
23
liuqianqian 2008-02-25
  • 打赏
  • 举报
回复
重复一下,经过考证,应该是1+2+3+5+5+7=23,上次写的原理搞反了,这次肯定没错,
原理仍然是先赋值先运算的问题。

liuqianqian 2008-02-25
  • 打赏
  • 举报
回复
我认为是23,好像跟先赋值还是先运算有关,2+3+4+4+5+5=23,不知道这样对不对。
ZHOUJIAOSHOU 2008-02-25
  • 打赏
  • 举报
回复
23
1+2+3+5+5+7=23

"++"具有前置和后置的不同,但单独用的时候刚没有.
kcseason 2008-02-25
  • 打赏
  • 举报
回复
很傻很天真 ...
zdjray 2008-02-25
  • 打赏
  • 举报
回复
一点都不无聊
很有意思的题目

问题的关键点我认为有二:
一是对i++与++i的理解
二是程序中的trick
这个trick可以说是计数器导致的
最主要的是分析最前面的一个加法,即(i++) + (i++)
这个加法实际上丢掉了一次运算,因为i++的定义是先运算再赋值,而最后只能进行一次赋值,所以这次运算丢掉了一次自增运算
而后面的第一次++i运算就不一样了
前面一次运算i++后时i已经是4,这时++i则变成了5,所以是1+2+3+5
从而最后答案是1+2+3+5+5+7=23
tianyidan 2008-02-25
  • 打赏
  • 举报
回复
23,你自己写个测试类,一编译就知道了。
hero222 2008-02-25
  • 打赏
  • 举报
回复
顶,简单
yangzhd 2008-02-25
  • 打赏
  • 举报
回复
1+2+3+5+5+7=23
分析:
int i=1;
(i++)(先付i=1再进行运算)+(i++)(通过上一步的运算,这时的i以是等于2了,所以现在i=2,再次进行运算)+(i++)(走到第三步时,这时的i以是等于3了,所以现在i=3,再次进行运算)+(++i)("++i"这表示的意思是先运算再付值,上一步i==3,再进行i++,所以这是的i等于4,止时的i再进行上次运算,所以止时的i==5了)+(i++)(止时的i=5,再进行运算)+(++i)(这和第四步一样);
加载更多回复(42)

62,614

社区成员

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

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