黑马程序员技术交流社区
标题:
复习做题时碰到一个很简单的题目,有点不明白。。
[打印本页]
作者:
王小刚
时间:
2012-4-15 19:38
标题:
复习做题时碰到一个很简单的题目,有点不明白。。
class Test
{
public static void main(String[] args)
{
int i= 0;
while(i++<10);
System.out.println("i="+i);
}
}
运行结果是i=11 .
想不明白呀
算起来不是应该是 i=10的时候 条件就不满足了呀
怎么会等于11呢
作者:
尹博
时间:
2012-4-15 19:47
最后一次循环判断是当i为10时,此时i++ <10不再成立,while循环退出,最后打印i++后的值,也就是11
作者:
王永旺
时间:
2012-4-15 19:54
while(i++<10);
先判断 i 是否小于十,如果不成立还会在加一次。
如果改成++i,结果就是10了。
作者:
马强
时间:
2012-4-15 19:56
当i=10的时候,while不满足,跳出。这时i为10。
但是读到i++的时候又自加了一次,所以输出为11。
你可以把输出语句放到循环里,结果又不一样。
作者:
蒋亮
时间:
2012-4-15 19:57
很简单,因为你把i++<10作为循环条件了,即使i=10的时候,也会执行i++操作。
i++是先进行其他操作再加1,++i是先加1再执行其他操作,你换成++i试试
作者:
余耀明
时间:
2012-4-15 20:04
while(i++<10);
i++ :首先使用i原值,在执行i加一,最后一次循环i = 10时不小于10 但要i 加一要执行一次,所以最后是11了。
作者:
高铭
时间:
2012-4-15 20:12
当i=10的时候 条件不满足 但是程序并没有停止
还需要向下运行 i++ 就是 10++ 就会是11了
改成++i i 就会等于10 了
作者:
吴玉辉
时间:
2012-4-15 20:25
你的输出语句也没再循环内啊
作者:
孙宇晨
时间:
2012-4-15 21:13
i++是先赋值再自加的 . 换成++i 就好了
作者:
陈坚
时间:
2012-4-15 21:58
++的运算级别比<的级别高,i++是先执行再自加。当i=10时,不满足条件跳出循环,再进行自加
作者:
魏明明
时间:
2012-4-15 23:07
while(i++<10);无论如何这条判断语句是执行了,所以当i=10是判断不成立,表示循环结束了,可是i还是会自加一次
作者:
liuyang
时间:
2012-4-15 23:31
while(i++<10)
;
System.out.println("i="+i);
你把输出语句放在了循环外边了,当10不满足时也执行了++,所以就是11,你说的那种情况是把输出放在循环里面,当10不满足时就不会输出了
class Test
{
public static void main(String[] args)
{
int i= 0;
while(i++<10)
System.out.println("i="+i);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2