黑马程序员技术交流社区

标题: 这个答案虽然正确,但是还是有点看不懂。 [打印本页]

作者: 杨立考    时间: 2012-10-2 10:28
标题: 这个答案虽然正确,但是还是有点看不懂。
3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?     (把标颜色部分注释说明一下,谢谢!)
import java.util.*;
class Test3
{
public static void main(String[] args)
{
  int count=0;   
  double line =3000;
  while(line>=5)

   {
   line=line/2;
    count++;

   
   }
   System.out.println(count);
}
}


作者: 覃宏海    时间: 2012-10-2 10:41
本帖最后由 覃宏海 于 2012-10-2 10:47 编辑

3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?     (把标颜色部分注释说明一下,谢谢!)
import java.util.*;
class Test3
{
public static void main(String[] args)
{
   int count=0;    --------------------------------------------------->定义一个计数器,用于计数天数。
  double line =3000;----------------------------------------->定义绳长,因为是折半,所以肯定不是整数。
   while(line>=5)--------------------------------------->当绳长度大于等于5的时候才进行折半
    {
   line=line/2;-------------------------------------->进行折半操作

     count++;------------------------------------->每折半一次,天数加1.

   
    }
    System.out.println(count);
}
}

作者: 柏占肖    时间: 2012-10-2 10:43
变量count表示的是天数,初始值为0,变量line表示的是绳子的总长,初始值为3000,while(line>=5){}这表示当绳子的总长小于5米时退出循环,line = line / 2;这就表示绳子减了一半,count++表示每减一次就把天数加一天,当line>=5为false时退出循环打印天数System.out.println(count);
作者: 邱成    时间: 2012-10-2 10:44
mport java.util.*;
class Test3
{
public static void main(String[] args)
{
  int count=0;   //这个变量时用来记录天数的
  double line =3000;//绳子的长度为3000米
  while(line>=5)//判断绳子的长度是否小于5米,小于5米时跳出循环
   {
   line=line/2;//绳子减半
    count++;//天数加1
   
   }
   System.out.println(count);//打印输出最后绳子小于5米时的天数
}
}


作者: 胡斌    时间: 2012-10-2 10:47

public class Test3{
       
        public static void main(String[] agrs)
        {
                 int count=0;    //定义一个变量来记录天数。
                  double line =3000;//定义绳子的长度。
                  while(line>=5)//这句话是关键,表示绳子小于5米就退出while循环。
                   {
                   line=line/2;
                    count++;//每次绳子减半,count加1.
                  
                   }
                   System.out.println(count);
               
        }
}

作者: 张丽    时间: 2012-10-2 11:39
3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?     (把标颜色部分注释说明一下,谢谢!)
import java.util.*;
class Test3
{
public static void main(String[] args)
{
  int count=0;   
  double line =3000;
  while(line>=5)
   {
   line=line/2;
    count++;
   
   }
   System.out.println(count);
}
}
首先考虑绳子的长度每天减一半,就是减半的动作要重复做,使用循环,可以用while和for循环,而循环条件则是绳子长度大于等于5,
问到需要的天数其实就是循环的次数。定义count计数器,line为绳子长度,每天减一半的语句就是line=line/2;然后计数器是记录
绳子减半的次数,所以紧跟着line=line/2,并且在循环里。我想这很容易理解了吧。
也可以写成for循环:

import java.util.*;
class Test3
{
public static void main(String[] args)
{   
   int count=0;
  for(int line=3000; line>=5;)//在java中除法结果肯定是整数,所以line可以定义为int类型。
{
        line=line/2;
        count++;
}
   System.out.println(count);
}
}

作者: 杨华东    时间: 2012-10-2 14:12
本帖最后由 杨华东 于 2012-10-2 14:16 编辑

3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?     (把标颜色部分注释说明一下,谢谢!)
import java.util.*;
class Test3
{
public static void main(String[] args)
{
  int count=0;  //你想想,如何计算天数?肯定是从第0天开始:因为刚开始还没进行减半操作,所以天数为0。
                         // 以后每减半一次我就让计算机自动给我加一天时间。这个时候定义的这个变量就是我们所说的:
计数器

  double line =3000;//为了记住减半前绳子的长度:因为要进行下面的判断:(line>=5)。所以要定义这样的一个初始长度。
  while(line>=5)//通过循环判断绳子的当前长度是多少。如果满足执行下面的语句。
   {
   line=line/2;//所谓的减半操作。相信你能明白。
    count++;//回忆一哈第一条解释:这时候我们要增加天数啦。
   
   }
   System.out.println(count);//通过循环体的操作 count 已经被多次赋值,你要明白 我们最终得到的是最后一次的赋值,也就是所谓的天数。
}
}




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