黑马程序员技术交流社区

标题: 请哪位帮我解释下这题是怎么回事啊? [打印本页]

作者: 张洋89    时间: 2014-12-3 23:09
标题: 请哪位帮我解释下这题是怎么回事啊?
int i = 100;
while(true)
{
        If ( i++ > 100 )
                break;
        System.out.println(i);
}
A.  100
B.  101
C.  102
D.  103

作者: 柳超    时间: 2014-12-3 23:24
结果是  101吗
作者: 小家伙    时间: 2014-12-3 23:31
++在后,先判断,再加加。
作者: wangzheng406    时间: 2014-12-3 23:53
先判断,然后+1,输出101,101>100,break
作者: 安卓小蜗牛    时间: 2014-12-4 00:09
i++>100,就是101啊
作者: 夏至落叶    时间: 2014-12-4 00:13
先++,然后输出101,然后退出
作者: 杨佳名    时间: 2014-12-4 00:19
本帖最后由 杨佳名 于 2014-12-4 00:21 编辑

先判断100>100吗?  false,i自增变成101,走输出语句,打印i的值为101
再进入循环,判断101>100吗? true,i自增变成102,break跳出循环
作者: 夏至落叶    时间: 2014-12-4 00:25
杨佳名 发表于 2014-12-4 00:19
先判断100>100吗?  false,i自增变成101,走输出语句,打印i的值为101
再进入循环,判断101>100吗? true,i ...

但是打印的结果是101,i变成102的时候没打印
作者: boycechan    时间: 2014-12-4 00:31
教楼主一个方法,用Eclipse或者MyEclipse工具设置断点去观察值的变化!一目了然。
作者: 壹贰叁    时间: 2014-12-4 00:39
先执行i>100,在++,然后输出结果:101
作者: quick3g    时间: 2014-12-4 02:14
关键在于i++,先if判断,然后自增1;如果是++i呢,楼主研究下。
作者: 327753899    时间: 2014-12-4 15:44
101是正确的
作者: 高慧觉    时间: 2014-12-4 16:05
不论是i++还是++i,只要运行后就自增1;
如果a=3,b=a++.结果是b=3;
如果是b=++a,结果是b=4.
作者: Dr.Sparta    时间: 2014-12-4 17:38
++在后,先判断再自增,第二次判断时i已经是101,break,打印i
作者: LIANGYU    时间: 2014-12-4 18:05
先++,然后输出101,然后退出
作者: ben_vs_cong    时间: 2014-12-4 19:34
输出的应该是输出101。我是这样理解i++和++i的,其实他们最终都会自增1。比如你这个比较的话,i++就表示,先拿i比较(理解为i=100>100),再自加1;如果是++i,那么就是先自加1,再比较(理解为i=101>100)。这个程序虽然if条件为假,i都自加了1的,所以会输出101。
作者: 清诗纪事    时间: 2014-12-4 20:34
开始执行的时候i=100
i++就是101,101>100,break,输出101
作者: zmhlnrs    时间: 2014-12-4 23:03
先判断100>100,后i自增,输出101
作者: 逍遥小seng    时间: 2014-12-5 01:22
论坛以前的题:你参考下
i=0;
i++;
sop(i++);
sop(++i);
结果是1,3.估计你懂了吧
作者: 黑马新人    时间: 2014-12-5 17:53
输出101啊。。第一次不执行if()语句,然后顺序输出”101“,第二次i自增后满足if()语句条件,break跳出while()循环。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2