黑马程序员技术交流社区

标题: 记录——代码练习-while循环语句 [打印本页]

作者: 迷路的小孩儿    时间: 2015-7-9 20:59
标题: 记录——代码练习-while循环语句
  1. /* 需求:我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
  2. 请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
  3. 分析;
  4. A:定义一个统计变量,初始化值为0;
  5. B:最终高度不超过8848米
  6. C:初始高度为0.01米
  7. D:折叠的变化是折叠完,高度变为原来的2倍。
  8. E:统计次数
  9. */
  10. class SwitchDemo {
  11. public static void main(String[] args) {
  12. int count = 0;
  13. double x = 0.01;
  14. while (x<=8848) {
  15. x *= 2;
  16. count ++;
  17. System.out.println("count:"+x);
  18. x++;
  19. }
  20. System.out.println("count:"+count);
  21. }
  22. }
复制代码


作者: 为明天而奋斗    时间: 2015-7-9 21:16
不太清楚哦
作者: 等你的季节-夏天    时间: 2015-7-9 21:29
谢谢分享
作者: ZhangHeng    时间: 2015-7-9 21:35
x++;
这句话错误,x++之后,次数会变少。
System.out.println("count:"+x);
这句话完全没必要,不清楚你要打印什么,如果打印x,那应该是("x:"+x);

作者: 迷路的小孩儿    时间: 2015-7-9 21:58
为明天而奋斗 发表于 2015-7-9 21:16
不太清楚哦

我也不知道 为什么会这么显示。字小。而且格式不是我想要的那种。该怎么办  你知道么  
作者: 迷路的小孩儿    时间: 2015-7-9 22:01
ZhangHeng 发表于 2015-7-9 21:35
x++;
这句话错误,x++之后,次数会变少。
System.out.println("count:"+x);

我想打印  第count次的 值。把次数。和值都打印出来。
作者: 迷路的小孩儿    时间: 2015-7-9 22:07
等你的季节-夏天 发表于 2015-7-9 21:29
谢谢分享

不客气。这个题目我做错了。对不起啦。
作者: 迷路的小孩儿    时间: 2015-7-9 22:08
此代码     有错。请勿模仿。谢谢。
作者: wuchangfeng    时间: 2015-7-9 22:17
class WhileDemo1 {
        public static void main(String[] args) {
                double start = 0.01;
                int end = 8848;
                int count = 0;
                while (start <= end)
                {
                        count++;
                        start *= 2;
                }
                        System.out.println(count);
        }
}
这样是正确的。
首先你要明白你所要求的是什么,你定义double x = 0.01,后面的x++s bu 成立的
其次你的循环体和控制语句没分清楚,你要的是折叠次数,所以x *=2是控制语句,气氛是while的结构分清楚了代码就不会出现逻辑错误了。希望对你有帮助
作者: wuchangfeng    时间: 2015-7-9 22:28
我刚刚调试了下,如果你想连高度一起输出可以这样写,你要的是最终的x的值,所以x的输出语句要从while循环中拿出来。
class WhileDemo1 {
        public static void main(String[] args) {
                   int count = 0;
                   double x = 0.01;
        while (x<=8848) {
        count ++;
        x *= 2;
        }
        System.out.println("count:"+count);
        System.out.println("count:"+x);
      }
作者: 迷路的小孩儿    时间: 2015-7-9 22:40
本帖最后由 迷路的小孩儿 于 2015-7-9 22:41 编辑

多谢 大家  指点。

作者: 迷路的小孩儿    时间: 2015-7-9 22:44
wuchangfeng 发表于 2015-7-9 22:17
class WhileDemo1 {
        public static void main(String[] args) {
                double start = 0.01;

谢谢指点。:)
作者: 迷路的小孩儿    时间: 2015-7-9 22:47
wuchangfeng 发表于 2015-7-9 22:28
我刚刚调试了下,如果你想连高度一起输出可以这样写,你要的是最终的x的值,所以x的输出语句要从while循环 ...

谢谢  谢谢  
作者: 18678927239    时间: 2015-7-9 22:50
给楼主顶一个吧 今天太累了  不看了
作者: shanshan33    时间: 2015-7-9 22:54
好厉害的样子
作者: 迷路的小孩儿    时间: 2015-7-9 23:05
shanshan33 发表于 2015-7-9 22:54
好厉害的样子

你想多了   我是典型的小白一个。。嘿嘿。一起学习进步。加油哈  
作者: 迷路的小孩儿    时间: 2015-7-9 23:08
18678927239 发表于 2015-7-9 22:50
给楼主顶一个吧 今天太累了  不看了

谢谢        
作者: 龙哥Longer    时间: 2015-7-9 23:33
谢谢,当复习了
作者: zhujunlin0108    时间: 2015-7-9 23:43
表误导小学生呀




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