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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 文江江 于 2014-3-10 17:12 编辑
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 int i=0;
  4.                 while (true) {
  5.                         if (i%2==0) {
  6.                                 System.out.println(i);
  7.                         }
  8.                         i++;
  9.                 }
  10.         }
  11. }
复制代码

8 个回复

倒序浏览
while (true)是个死循环,只要你不让它停,它会一直从0开始,把偶数打印下去的。
为什么每次的结果都不一样呢?主要是因为你每次停止的时间都不一样,加上现在电脑跑得快,一眨眼就跑很远啦。
不知这程序想测什么? 如果只是想看一下偶数,你可以缩小一下范围,
比如:while(i<100) ,这样它就会只打印0到100之间的偶数啦。
回复 使用道具 举报
while(true)  什么都没有默认是true
回复 使用道具 举报
  1. //会不一样吗???   其实上面的哥们说得对,
  2. //其实是你停下来的时间不一样而已
  3. public class Demo {
  4.         public static void main(String[] args) {
  5.                 int i=0;
  6.                 while (true)     //"while(true)"  ()中是true程序就会继续执行下去不会停,,直到电脑冒烟
  7.                                         {
  8.                         if (i%2==0)
  9.                                                 {
  10.                                 System.out.println(i);
  11.                         }
  12.                         i++;
  13.                 }
  14.         }
  15. }
复制代码
回复 使用道具 举报
zjf 发表于 2014-3-9 22:20
while (true)是个死循环,只要你不让它停,它会一直从0开始,把偶数打印下去的。
为什么每次的结果都不一样 ...

你说的对,但是为什么这个这样写,它每次运行开始的结果都不一样啊?
回复 使用道具 举报
因为你的写的是while(true)这个循环是死循环不会终止,(当然除非你人工终止,程序会停);然后每次循环都会i++;所以i的值每次都不一样,你的结果当然不同啊!
回复 使用道具 举报
本帖最后由 ok-Prince 于 2014-3-10 08:03 编辑

毕老师讲过:while(ture){}是while的无限循环的表达形式,如果运行不让循环停止的话,那么你计算机的CPU会一直去处理这个循环,把条件改一下就OK了,至于为什么每次结果都不一样,是因为dos命令行的显示是有长度限制的,这个代码一经运行就会瞬间处理上万的数据,强行停止后,它会只显示最近处理的数据,前面那些都被顶掉了,不在命令行窗口中显示了,只是看着不一样而已,其实每次运行的结果是一样的。
回复 使用道具 举报
电脑的性能问题。加上死循环强制停下来的时间不一样,出现的结果会不一样。开始的结果,你用eclipse试试,cmd开始的是不是看不到了。
回复 使用道具 举报
这死循环啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马