黑马程序员技术交流社区

标题: 为何break跳不出来 [打印本页]

作者: 许云龙    时间: 2013-8-20 18:22
标题: 为何break跳不出来
本帖最后由 许云龙 于 2013-8-21 00:14 编辑
  1. //检查下面代码的错误,什么原因导致break跳不出来?说明...
  2. public class ClassIs11 {
  3.         public static void main(String[] args)
  4.         {
  5.                 int num=0;
  6.                 while(true)
  7.                 {        
  8.                         if(num>100)
  9.                                 break;
  10.                         else
  11.                         {
  12.                                 for(int y =0;y<8;y++){
  13.                                         num+=10;
  14.                                 }
  15.                         }
  16.                         num/=2;
  17.                         System.out.println(num);
  18.                 }        
  19.         }
  20. }
复制代码

作者: EYE_SEE_YOU    时间: 2013-8-20 18:36
啊?跳出来啦,没跳出来的说法就是执行不到?这题能考出什么奇妙的东西吗
作者: 许云龙    时间: 2013-8-20 18:39
EYE_SEE_YOU 发表于 2013-8-20 18:36
啊?跳出来啦,没跳出来的说法就是执行不到?这题能考出什么奇妙的东西吗 ...

不好意思少了行代码,版主您在复制出来试试

作者: EYE_SEE_YOU    时间: 2013-8-20 18:44
哇,好厉害啊,完全没有机会呢
作者: 许云龙    时间: 2013-8-20 18:46
EYE_SEE_YOU 发表于 2013-8-20 18:44
哇,好厉害啊,完全没有机会呢

我也是在回答问题的时候发现的

作者: EYE_SEE_YOU    时间: 2013-8-20 18:50
庄子说日取其半,万世不竭。这里取了一半,又补上一半,更是万世不竭了
作者: wlt    时间: 2013-8-20 19:59
求解  我也没看懂   
作者: 许云龙    时间: 2013-8-20 20:04
wlt 发表于 2013-8-20 19:59
求解  我也没看懂

过段时间再告诉你

作者: 张晓辉    时间: 2013-8-20 21:19
本帖最后由 张晓辉 于 2013-8-20 21:21 编辑

{:soso_e126:}折磨了我半天,终于找出答案,待我列出每次的循环过程和结果就明了了。
第1次,num=0,for循环完,num=0+80,然后num/=2,此时num为40.下面过程省略我只写结果了,
2次,40+80=120,120/2=60
3, 60+80=140,140/2=70
4,70+80=150,150/2=75
5,75+80=155,155/2=77
6,77+80=157,157/2=78
7,78+80=158,158/2=79
8,(79+80)/2=79
每次都是加80除以2,永远不可能大于100,所以挑不出来,若不考虑丢失精度,请问当num=80的时候结果还会变吗?不过看起来这问题没考察出什么,耽误我半天时间,求补偿。。。
作者: 许云龙    时间: 2013-8-20 21:55
张晓辉 发表于 2013-8-20 21:19
折磨了我半天,终于找出答案,待我列出每次的循环过程和结果就明了了。
第1次,num=0,for循环 ...

我以后不问这些乱起八糟的问题了,多研究一些技术性的问题,我也是看到人家的问题做调试的时候才发现这个猫腻的,也弄了我半天时间,对不起,我相信版主会给你加分的


作者: 米中之玉    时间: 2013-8-20 22:22
可以把if里面的条件改成79或以下的数试试,应该就能退出来了。

break.jpg (74.34 KB, 下载次数: 99)

break.jpg

作者: 米中之玉    时间: 2013-8-21 10:30
许云龙 发表于 2013-8-20 21:55
我以后不问这些乱起八糟的问题了,多研究一些技术性的问题,我也是看到人家的问题做调试的时候才发现这个 ...

为什么问题都解决了,却没有一个人得到加分呢?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2