A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int i = 100;
while(true)
{
   if (i++ >100)
   {
      break;
   }
System.out.println(i);
}
运行结果是101,这是为什么呢?一直没搞明白,请大神指点!

10 个回复

倒序浏览
当i = 100 时,执行if (i++ >100)  先判断 i > 100 然后再 i=i+1
回复 使用道具 举报
a9623a 发表于 2016-4-6 16:25
当i = 100 时,执行if (i++ >100)  先判断 i > 100 然后再 i=i+1

谢谢,差不多明白了
回复 使用道具 举报
i++会自增啊,放在后面会先运算,再自增.
回复 使用道具 举报
I++先用后加,i++>100为false,但是下面输出是i已经变为101,第二次循环时i++>100成立,break退出循环
回复 使用道具 举报
"i++ >100"
这个代码相当于
i >100 ; i = i + 1;
如果想得到100,可以改成"++i > 100;"
回复 使用道具 举报
先比较  再自增

点评

谢了,大神  发表于 2016-4-8 23:10
回复 使用道具 举报
wy123580 发表于 2016-4-6 22:40
I++先用后加,i++>100为false,但是下面输出是i已经变为101,第二次循环时i++>100成立,break退出循环 ...

谢谢,一开始没弄明白i++什么时候参与的运算
回复 使用道具 举报
追梦de蜗牛2016 发表于 2016-4-8 16:53
"i++ >100"
这个代码相当于
i >100 ; i = i + 1;

++i的话,i不是先变成101,再参与判断吗,那岂不是直接break跳出循环了吗,根本就没有输出100的机会了啊
回复 使用道具 举报
zapple926 发表于 2016-4-6 22:34
i++会自增啊,放在后面会先运算,再自增.

谢谢,有点明白了{:2_32:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马