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


下面程序执行的结果是?()
int i = 100;
while(true)
{
        if (i++ > 100)
        {
                break;
        }
System.out.println(i);
}
A.  100
B.  101
C.  102
D.  报错
这道题不理解为什么是选B?

5 个回复

倒序浏览
while()括号中是true,那么不论外界条件如何总能进入循环,进入循环之后判断if()中的条件,if(i++>100),++在i后面.i先参与判断,再自加.于是if先判断为false,然后执行i++;此时i=101,执行System输出语句,然后i=101;再进入一次循环.这是if判断为true,遇到break.
重点是System输出语句在while循环里面.
回复 使用道具 举报 1 0
i先与 100比较再自增.所以选B
回复 使用道具 举报
因为i++是前置自增赋值运算符,如果变量名在前原来的数值先参与运算,然后再自增+1,所以结果就是101
回复 使用道具 举报
我觉得是报错!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马