1. 程式人生 > >第2章循環流程控制語句

第2章循環流程控制語句

多少 tex water 裏的 功能 for ack als pub

2.1for循環的格式及基本使用
2.1.1for循環語句格式:
for(初始化語句;判斷條件語句;控制條件語句) {
循環體語句; / /讓循環體代碼執行多次;
}
2.1.2執行流程
A:執行初始化語句
B:執行判斷條件語句,看其結果是true還是false
如果是false,循環結束。
如果是true,繼續執行。
C:執行循環體語句
D:執行控制條件語句
E:回到B繼續
2.1.3for循環的執行流程圖
技術分享圖片
2.1.4代碼案例八

package com.itheima_04;
/*
 * for循環語句格式:
 *      for(初始化語句;判斷條件語句;控制條件語句) {
 *          循環體語句;
 *      }
 * 
 *      執行流程:
 *          A:執行初始化語句
 *          B:執行判斷條件語句,看結果是true還是false
 *              如果是true,就繼續執行
 *              如果是false,就結束循環
 *          C:執行循環體語句
 *          D:執行控制條件語句
 *          E:回到B繼續
 * 
 * 需求:
 *      在控制臺輸出10次”HelloWorld”的案例。
 */
public class ForDemo {
    public static void main(String[] args) {
        //原始寫法
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("-------------------------");

        //用循環改進
        for(int x=1; x<=10; x++) {
            System.out.println("HelloWorld");
        }
    }
}

2.2for循環的練習
2.2.1for循環實現獲取指定範圍數據
2.2.2代碼案例九

package com.itheima_04;
/*
 * 需求:獲取數據1-5和5-1
 */
public class ForTest {
    public static void main(String[] args) {
        //原始做法
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
        System.out.println(5);
        System.out.println("-------------");

        //用循環改進
        for(int x=1; x<=5; x++) {
            System.out.println(x);
        }
        System.out.println("-------------");

        //1-5的數據我們獲取到了,如何獲取5-1呢?
        for(int x=5; x>=1; x--){
            System.out.println(x);
        }
    }
}

2.2.3for循環實現1-5之間數據求和
2.2.4代碼案例十

package com.itheima_04;
/*
 * 需求:求出1-5之間數據之和
 * 
 * 分析:
 *      A:定義求和變量,初始化值是0
 *      B:獲取1-5之間的數據,用for循環實現
 *      C:把每一次獲取到的數據,累加起來就可以了
 *      D:輸出求和變量即可
 */
public class ForTest2 {
    public static void main(String[] args) {
        //定義求和變量,初始化值是0
        int sum = 0;

        //獲取1-5之間的數據,用for循環實現
        for(int x=1; x<=5; x++) {
            //把每一次獲取到的數據,累加起來就可以了
            //sum = sum + x;
            /*
             * 第一次:sum = 0 + 1 = 1
             * 第二次:sum = 1 + 2 = 3
             * 第三次:sum = 3 + 3 = 6
             * 第四次:sum = 6 + 4 = 10
             * 第五次:sum = 10 + 5 = 15
             */
            sum += x;
        }

        //輸出求和結果
        System.out.println("sum:"+sum);
    }
}

2.2.5for循環實現1-100之間偶數和
2.2.6代碼案例十一

package com.itheima_04;
/*
 * 需求:求出1-100之間偶數和
 * 
 * 分析:
 *      A:定義求和變量,初始化值是0
 *      B:獲取1-100之間的數據,用for循環實現
 *      C:把獲取到的數據進行判斷,看是否是偶數
 *          如果是,就累加
 *      D:輸出求和結果
 */
public class ForTest3 {
    public static void main(String[] args) {
        //定義求和變量,初始化值是0
        int sum = 0;

        //獲取1-100之間的數據,用for循環實現
        for(int x=1; x<=100; x++) {
            //把獲取到的數據進行判斷,看是否是偶數
            if(x%2 ==0) {
                sum += x;
            }
        }

        //輸出求和結果
        System.out.println("sum:"+sum);
    }
}

2.2.7for循環實現在控制臺打印水仙花數
2.2.8代碼案例十二

package com.itheima_04;
/*
 * 需求:在控制臺輸出所有的”水仙花數”
 * 
 * 分析:
 *      什麽是水仙花數呢?
 *          所謂的水仙花數是指一個三位數,其各位數字的立方和等於該數本身。
 *          舉例:153就是一個水仙花數。
 *          153 = 1*1*1 + 5*5*5 + 3*3*3
 *
 *      A:三位數其實就告訴了我們水仙花數的範圍
 *          100-999
 *      B:如何獲取一個數據的每一個位上的數呢?
 *          舉例:我有一個數據153,請問如何獲取到個位,十位,百位
 *          個位:153%10 = 3;
 *          十位:153/10%10 = 5;
 *          百位:153/10/10%10 = 1;
 *          千位:...
 *          萬位:...
 *      C:讓每個位上的立方和相加,並和該數據進行比較,如果相等,就說明該數據是水仙花數,在控制臺輸出
 */
public class ForTest4 {
    public static void main(String[] args) {
        //通過循環獲取到每一個三位數
        for(int x=100; x<1000; x++) {
            //獲取個位,十位,百位
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/10/10%10;

            //讓每個位上的立方和相加,並和該數據進行比較,如果相等,就說明該數據是水仙花數,在控制臺輸出
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
                System.out.println(x);
            }
        }
    }
}

2.2.9for循環實現統計水仙花的個數
2.2.10代碼案例十三

package com.itheima_04;
/*
 * 需求:統計”水仙花數”共有多少個
 * 
 * 分析:
 *      A:定義統計變量,初始化值是0
 *      B:獲取三位數,用for循環實現
 *      C:獲取三位數的個位,十位,百位
 *      D:判斷這個三位數是否是水仙花數,如果是,統計變量++
 *      E:輸出統計結果就可以了
 */
public class ForTest5 {
    public static void main(String[] args) {
        //定義統計變量,初始化值是0
        int count = 0;

        //獲取三位數,用for循環實現
        for(int x=100; x<1000; x++) {
            //獲取三位數的個位,十位,百位
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/10/10%10;

            //判斷這個三位數是否是水仙花數,如果是,統計變量++
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
                count++;
            }
        }

        //輸出統計結果就可以了
        System.out.println("水仙花數共有:"+count+"個");
    }
}

2.3while循環的格式及基本使用
2.3.1while循環語句格式
基本格式
while(判斷條件語句) {
循環體語句;
}
擴展格式
初始化語句;
while(判斷條件語句) {
循環體語句;
控制條件語句;
}
2.3.2執行流程圖
技術分享圖片
2.3.3代碼案例十四

package com.itheima_05;
/*
 * while循環語句的基本格式:
 *      while(判斷條件語句) {
 *          循環體語句;
 *      }
 * 擴展格式:
 *      初始化語句;
 *      while(判斷條件語句) {
 *          循環體語句;
 *          控制條件語句;
 *      }
 * 
 * 回顧for循環的語句格式:
 *      for(初始化語句;判斷條件語句;控制條件語句) {
 *          循環體語句;
 *      }
 */
public class WhileDemo {
    public static void main(String[] args) {
        //輸出10次HelloWorld
        /*
        for(int x=1; x<=10; x++) {
            System.out.println("HellloWorld");
        }
        */

        //while循環實現
        int x=1;
        while(x<=10) {
            System.out.println("HellloWorld");
            x++;
        }
    }
}

2.4while循環的練習
2.4.1while循環實現1-100之間數據求和
2.4.2代碼案例十五

package com.itheima_05;
/*
 * 求1-100之和。
 * 練習:統計水仙花個數。
 */
public class WhileTest {
    public static void main(String[] args) {
        //回顧for循環實現

        /*
        //定義求和變量
        int sum = 0;
        //獲取1-100之間的數據
        for(int x=1; x<=100; x++) {
            //累加
            sum += x;
        }
        System.out.println("1-100的和是:"+sum);
        */

        //while循環實現
        //定義求和變量
        int sum = 0;
        int x = 1;
        while(x<=100) {
            sum += x;
            x++;
        }
        System.out.println("1-100的和是:"+sum);
    }
}

2.5do…while循環的格式及基本使用
2.5.1do…while循環語句格式
基本格式
do {
循環體語句;
}while((判斷條件語句);
擴展格式
初始化語句;
do {
循環體語句;
控制條件語句;
} while((判斷條件語句);
2.5.2執行流程圖
技術分享圖片

2.5.3代碼案例十六

package com.itheima_06;
/*
 * do...while循環的基本格式:
 *      do {
 *          循環體語句;
 *      }while(判斷條件語句);
 * 擴展格式:
 *      初始化語句;
 *      do {
 *          循環體語句;
 *          控制條件語句;
 *      }while(判斷條件語句);
 * 執行流程:
 *      A:執行初始化語句;
 *      B:執行循環體語句;
 *      C:執行控制條件語句;
 *      D:執行判斷條件語句,看是true還是false
 *          如果是true,回到B繼續
 *          如果是false,就結束
 * 
 * 練習:
 *      求和案例
 *      統計水仙花個數
 */
public class DoWhileDemo {
    public static void main(String[] args) {
        //輸出10次 HelloWorld
        /*
        for(int x=1; x<=10; x++) {
            System.out.println("HelloWorld");
        }
        */

        //do...while改寫
        int x=1;
        do {
            System.out.println("HelloWorld");
            x++;
        }while(x<=10);
    }
}

2.6三種循環的區別
2.6.1區別概述
雖然可以完成同樣的功能,但是還是有小區別:
do…while循環至少會執行一次循環體。
for循環和while循環只有在條件成立的時候才會去執行循環體
for循環語句和while循環語句的小區別:
使用區別:控制條件語句所控制的那個變量,在for循環結束後,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。

2.6.2代碼案例十七

package com.itheima_06;
/*
 * 三種循環的區別:
 *      A:do...while至少執行一次循環體
 *      B:for,while循環先判斷條件是否成立,然後決定是否執行循環體
 * 
 * for和while的小區別:
 *      for循環的初始化變量,在循環結束後,不可以被訪問。而while循環的初始化變量,是可以被繼續使用的。
 *      如果初始化變量,後面還要繼續訪問,就使用while,否則,推薦使用for。
 * 
 * 循環的使用推薦:
 *      for -- while -- do...while
 */
public class DoWhileDemo2 {
    public static void main(String[] args) {
        /*
        int x = 3;
        while(x<3) {
            System.out.println("我愛林青霞");
            x++;
        }
        System.out.println("--------------");
        int y = 3;
        do {
            System.out.println("我愛林青霞");
            y++;
        }while(y<3);
        */

        for(int x=1; x<=10; x++){
            System.out.println("愛生活,愛Java");
        }
        //這裏的x無法繼續訪問
        //System.out.println(x);
        System.out.println("-----------------");

        int y = 1;
        while(y<=10) {
            System.out.println("愛生活,愛Java");
            y++;
        }
        System.out.println(y);
    }
}

第2章循環流程控制語句