for循环和while循环的区别

 

for循环和while循环的区别
  使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,

       否则用for循环。不知道用for循环。
       因为变量及早的从内存中消失,可以提高内存的使用效率。

  其实还有一种场景的理解:
    如果是一个范围的,用for循环非常明确。
    如果是不明确要做多少次,用while循环较为合适。
    举例:吃葡萄。

优先考虑for,其次考虑while,最后考虑do…while

class WhileVsForDemo {
    public static void main(String[] args) {
        //for循环实现
        for(int x=0; x<10; x++) {
            System.out.println("我爱Java");
        }
        //这里不能在继续访问了
        //System.out.println(x);
        
        //while循环实现
        int y = 0;
        while(y<10) {
            System.out.println("我爱Java");
            y++;
        }
        //这里是可以继续访问的
        System.out.println(y);
    }
} 

 

/*
    循环语句的区别:
        do...while循环至少执行一次循环体。
        而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
*/
class DoWhileDemo {
    public static void main(String[] args) {
        int x = 3;
        while(x < 3) {
            System.out.println("我爱Java");//不会被执行
            x++;
        }
        
        System.out.println("--------------");
        
        int y = 3;
        do {
            System.out.println("我爱Java");//执行一次
            y++;
        }while(y < 3);
    }
}

 

WhileDemo:

  需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
    每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
    请问,经过多少天,小芳才可以存到100元钱。

  分析:(分解问题,降低难度)
    A:小芳的妈妈每天给她2.5元钱
      double dayMoney = 2.5;
    B:她都会存起来
      double daySum = 0;
    C:从第一天开始存储
      int dayCount = 1;
    D:经过多少天,小芳才可以存到100元钱。
      double result = 100;
    E:这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
      说明要判断dayCount的值,如果对5整除就减去6元钱。
        daySum -= 6;
      由此还隐含了一个问题,就是如果不是5的倍数天的话,钱要累加
        daySum += dayMoney;
    F:因为不知道是多少天,所以我用死循环while语句,

      一旦超过100元我就退出循环。

class WhileDemo { public static void main(String[] args) { //每天要存储的钱是2.5元
        double dayMoney = 2.5; //存钱的初始化值是0
        double daySum = 0; //从第一天开始存储
        int dayCount = 1; //最终存储不小于100就不存储了
        int result = 100; //因为不知道是多少天,所以我用死循环,
        while(true) { //累加钱
            daySum += dayMoney; //一旦超过100元我就退出循环。
            if(daySum >= result) { System.out.println("共花了"+dayCount+"天存储了100元"); break;//满足条件即跳出死循环 } if(dayCount%5 == 0) { //花去6元钱
                daySum -= 6; System.out.println("第"+dayCount+"天花了6元钱"); } //天数变化
            dayCount++; } }

 

点赞