zoukankan      html  css  js  c++  java
  • 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++;
            }
        }
  • 相关阅读:
    今天实现了 沿路径移动
    enum类型的本质(转)
    (转)成为优秀技术人员的两点建议
    深入理解 C# 协变和逆变
    web通信
    ajax入门(复习)
    git版本管理工具的使用
    在asp.net 中使用httpmodules对网页进行处理
    asp.net http概念原理复习
    web page复习笔记
  • 原文地址:https://www.cnblogs.com/frank-me/p/11148124.html
Copyright © 2011-2022 走看看