java问题

宝持微笑继续我的骄傲 2011-05-24 09:53:23
int i=1;
int j=i++;
if((i>++j)&&(i++==j))
i+=j;
System.out.println(i);
答案是2
但是我想不通为什么,请高手给我详细说明下,谢谢!
...全文
176 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
frte87184 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tkd03072010 的回复:]

int i = 1 此时 i = 1
int j = i ++; 此时 j = 2, i = 2
if ((i > ++j) && (i ++ = j)) 由于上面可得j = 2 ,++j 时 j = 3, i > ++j 为false 所以整个判断语句为false
下面的 i+= j 就不执行了
此时 i = 2
System.out.println(i……
[/Quote]








错了
lord_is_layuping 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tkd03072010 的回复:]

int i = 1 此时 i = 1
int j = i ++; 此时 j = 2, i = 2
if ((i > ++j) && (i ++ = j)) 由于上面可得j = 2 ,++j 时 j = 3, i > ++j 为false 所以整个判断语句为false
下面的 i+= j 就不执行了
此时 i = 2
System.out.println(i……
[/Quote]

正解
职业宅男 2011-05-27
  • 打赏
  • 举报
回复
明白了还不结帖,害得我还进来
Intboy 版主 2011-05-27
  • 打赏
  • 举报
回复
二楼正解
  • 打赏
  • 举报
回复
嘻嘻。我也是啊
xinghen88 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 qinyanbin123 的回复:]
int i=1;
int j=i++;
if((i>++j)&&(i++==j))
i+=j;
System.out.println(i);
答案是2
但是我想不通为什么,请高手给我详细说明下,谢谢!
[/Quote]

很有道理,受教了!以前对i++和++i很迷惑,现在明白了!
  • 打赏
  • 举报
回复
谢谢大家了,我明白了
QQ164681187 2011-05-25
  • 打赏
  • 举报
回复
恩 楼主解释的很清楚啦 注意理解 i++和++i的区别
火光闪耀 2011-05-24
  • 打赏
  • 举报
回复
楼上说的很好 , 没有什么问题了。
LucEaspe 2011-05-24
  • 打赏
  • 举报
回复

int i=1; // i = 1
int j=i++; // j = 1, i = 2 //*
if((i>++j)&&(i++==j)) // i>++j <=> 2 > 2 false 不再判断执行 i++==j
i+=j;
System.out.println(i); //此处i=2 见上//*
TKD03072010 2011-05-24
  • 打赏
  • 举报
回复
int i = 1 此时 i = 1
int j = i ++; 此时 j = 2, i = 2
if ((i > ++j) && (i ++ = j)) 由于上面可得j = 2 ,++j 时 j = 3, i > ++j 为false 所以整个判断语句为false
下面的 i+= j 就不执行了
此时 i = 2
System.out.println(i); 得到的i是2
QQ群:121943030
欢迎广大Java爱好者加入!

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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