黑马程序员技术交流社区
标题:
小demo,为什么每次的结果都不一样呢?
[打印本页]
作者:
文江江
时间:
2014-3-9 21:55
标题:
小demo,为什么每次的结果都不一样呢?
本帖最后由 文江江 于 2014-3-10 17:12 编辑
public class Demo {
public static void main(String[] args) {
int i=0;
while (true) {
if (i%2==0) {
System.out.println(i);
}
i++;
}
}
}
复制代码
作者:
zjf
时间:
2014-3-9 22:20
while (true)是个死循环,只要你不让它停,它会一直从0开始,把偶数打印下去的。
为什么每次的结果都不一样呢?主要是因为你每次停止的时间都不一样,加上现在电脑跑得快,一眨眼就跑很远啦。
不知这程序想测什么? 如果只是想看一下偶数,你可以缩小一下范围,
比如:while(i<100) ,这样它就会只打印0到100之间的偶数啦。
作者:
焚雨成灰
时间:
2014-3-9 22:31
while(true) 什么都没有默认是true
作者:
2528870651
时间:
2014-3-9 22:31
//会不一样吗??? 其实上面的哥们说得对,
//其实是你停下来的时间不一样而已
public class Demo {
public static void main(String[] args) {
int i=0;
while (true) //"while(true)" ()中是true程序就会继续执行下去不会停,,直到电脑冒烟
{
if (i%2==0)
{
System.out.println(i);
}
i++;
}
}
}
复制代码
作者:
文江江
时间:
2014-3-9 22:43
zjf 发表于 2014-3-9 22:20
while (true)是个死循环,只要你不让它停,它会一直从0开始,把偶数打印下去的。
为什么每次的结果都不一样 ...
你说的对,但是为什么这个这样写,它每次运行开始的结果都不一样啊?
作者:
漠然~回首℃
时间:
2014-3-10 00:24
因为你的写的是while(true)这个循环是死循环不会终止,(当然除非你人工终止,程序会停);然后每次循环都会i++;所以i的值每次都不一样,你的结果当然不同啊!
作者:
ok-Prince
时间:
2014-3-10 07:53
本帖最后由 ok-Prince 于 2014-3-10 08:03 编辑
毕老师讲过:while(ture){}是while的无限循环的表达形式,如果运行不让循环停止的话,那么你计算机的CPU会一直去处理这个循环,把条件改一下就OK了,至于为什么每次结果都不一样,是因为dos命令行的显示是有长度限制的,这个代码一经运行就会瞬间处理上万的数据,强行停止后,它会只显示最近处理的数据,前面那些都被顶掉了,不在命令行窗口中显示了,只是看着不一样而已,其实每次运行的结果是一样的。
作者:
透过生活
时间:
2014-3-10 11:19
电脑的性能问题。加上死循环强制停下来的时间不一样,出现的结果会不一样。开始的结果,你用eclipse试试,cmd开始的是不是看不到了。
作者:
cnchenys
时间:
2014-3-10 12:00
这死循环啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2