黑马程序员技术交流社区

标题: 求助代码输出问题 [打印本页]

作者: 松毛    时间: 2013-11-4 07:25
标题: 求助代码输出问题
本帖最后由 松毛 于 2013-11-4 11:41 编辑

class TestDemo7
{
        public static void main(String[] args)
        {
                int sum = 0;
                int count = 0;
               
                while(sum < 100)
                {
                        for(int i=1;i<=7;i++)
                        {
                                if(i<7)
                                {
                                        sum = sum+10;
                                        count++;
                                }
                                else
                                {
                                        sum= (sum+20)/2;
                                        count++;
                                }
                        }
                }
                System.out.println("count:"+count);
        }
}
各位大侠,为什么我的这段代码编译通过,但输不出count的值啊?????
谢谢!


作者: 魏-玉-彪    时间: 2013-11-4 08:20
本帖最后由 魏-玉-彪 于 2013-11-4 08:23 编辑


  1. class TestDemo7 {
  2.         public static void main(String[] args) {
  3.                 int sum = 0;
  4.                 int count = 0;

  5.                 while (sum < 100) {
  6.                         for (int i = 1; i <= 7; i++) {
  7.                                 if (i < 7) {
  8.                                         sum = sum + 10;
  9.                                          count++;
  10.                                  //    System.out.println("ifsum" + sum);
  11.                               //  System.out.println("ifcount:" + count);
  12.                                        
  13.                                 } else {
  14.                                         sum = (sum + 20) / 2;
  15.                                         count++;
  16.      //   System.out.println("elsesum" + sum);
  17.    //        System.out.println("elsecount:" + count);
  18.                                 }
  19.                                 
  20.                         } //System.out.println("count1:");  这个语句放到这里就可以输出了
  21.                 }
  22.                 System.out.print("count:");   //while 经测试发现,你这是一个死循环, 不会跳出while
  23. //而这个语句定义到while 外面自然不会执行到
  24.         }
  25. }
复制代码
  加上注释处的语句执行后分析你就明白了.while陷入了死循环,而编译时期只检查语法错误,所以可以通过.运行时无法执行到所以,没有输出结果


作者: 黄炳期    时间: 2013-11-4 08:33
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
作者: 魏春旭    时间: 2013-11-4 08:35
{:soso_e103:}很明显是while进入死循环了。楼上那样输出应该也是有问题的,既然while死循环就会一直输出count的值了。。

这是不是小明攒钱那道题啊。楼主再努力自己写吧。。。
作者: 回天之力    时间: 2013-11-4 08:53
哈哈  


作者: 胡建伟    时间: 2013-11-4 09:02
System.out.println("count:"+count);放到while(条件表达式){循环体即执行语句}外面是没有错误的,只是说这个循环确实有问题,sum值有问题导致进入一个死循环,如果把sum值修改例如sum<10,可以正常输出cuount:7;如果把这条输出语句写入while循环内,系统就会一直输出循环,永远挑不出来哦



作者: ciowok    时间: 2013-11-4 11:33
因为i=8的时候,进入else{}语句,并结束for循环,进入while循环,while循环条件不满足,继续重新来过,这样是个死循环了
作者: 松毛    时间: 2013-11-4 11:35
魏春旭 发表于 2013-11-4 08:35
很明显是while进入死循环了。楼上那样输出应该也是有问题的,既然while死循环就会一直输出cou ...

对啊!:lol   谢谢啦
作者: 松毛    时间: 2013-11-4 11:36
胡建伟 发表于 2013-11-4 09:02
System.out.println("count:"+count);放到while(条件表达式){循环体即执行语句}外面是没有错误的,只 ...

谢谢啦!
作者: 松毛    时间: 2013-11-4 11:36
魏春旭 发表于 2013-11-4 08:35
很明显是while进入死循环了。楼上那样输出应该也是有问题的,既然while死循环就会一直输出cou ...

谢谢啦!




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