for循環和while循環的區別

 

for循環和while循環的區別
  使用區別:若是你想在循環結束後,繼續使用控制條件的那個變量,用while循環,spa

       不然用for循環。不知道用for循環。
       由於變量及早的從內存中消失,能夠提升內存的使用效率。

  其實還有一種場景的理解:
    若是是一個範圍的,用for循環很是明確。
    若是是不明確要作多少次,用while循環較爲合適。
    舉例:吃葡萄。code

優先考慮for,其次考慮while,最後考慮do...whileblog

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元錢。for循環

  分析:(分解問題,下降難度)
    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語句,class

      一旦超過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++; } }
相關文章
相關標籤/搜索