黑马程序员技术交流社区
标题: 关于While的题目,求解答。谢谢! [打印本页]
作者: 无所谓啦 时间: 2014-5-29 08:03
标题: 关于While的题目,求解答。谢谢!
public class TestWhile{
public static void main(String[] args){
int i = 0;
while(i++<10);
System.out.println("i="+i);
}
} //i=11,求详细分析步骤
作者: 周俊波 时间: 2014-5-29 10:47
运行一下 结果都出来了 还分析什么?
作者: e10my 时间: 2014-5-29 11:03
本帖最后由 e10my 于 2014-5-29 11:05 编辑
@author e10my 为您解答。
-----------------低调的分割线----------------------------
说几点注意的地方
i++ 是先使用i的值 ,之后i 再自增。
所以,第一次循环,判断的时候(i = 0) < 10 ;判断完之后 i++ ,i 的值成了1。
int i = 0;
while(i++<10);
//看这句话,while 后面有个分号 (while循环内是空语句,效果只有 i++ )
//就是说执行到最后一次的时候i的值为10 , “<10”不成立 结束空的while循环
//但是 i++ 是后执行的, 所以 i = 11;
System.out.println(i);
最后打印出11 ;
希望对楼主有帮助,共勉。
作者: code2014 时间: 2014-5-29 11:22
很详细~~·
作者: pengyu 时间: 2014-5-29 11:41
很详细,确实是这样
作者: 倪大大 时间: 2014-5-29 12:03
i++是先引用后加1, 你的while语句是一个空循环体,实际执行操作就只有i++,
当你i自增到10的时候 while语句i++<10 是不成立的,所以循环结束,但是你这个写法是先判断,再+1,
所以这时候i还会自增一次, 就有i=11;
作者: Blackay 时间: 2014-5-29 12:12
先判断i是否小于10后然后再++ 应该就差不多了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |