1. 程式人生 > >Java學習——迴圈結構(for迴圈、while迴圈和do...while迴圈)

Java學習——迴圈結構(for迴圈、while迴圈和do...while迴圈)

一、for迴圈
格式:
for(初始化表示式語句;判斷條件語句;控制條件語句){
迴圈體語句;
}
執行流程:
a:執行初始化表示式語句
b:執行判斷條件語句,看其返回值是true還是false
如果是true,就繼續執行
如果是false,就結束迴圈
c:執行迴圈體語句;
d:執行控制條件語句
e:回到b繼續。

下面是四個例子,對了理解for迴圈有很大作用。
eg1

public class For0 {
    public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            System.out.println("倩倩是個乖寶寶");
        }

    }
}

eg2

public class For1 {
    public static void main(String[] args) {
        /*A:
        案例演示
        需求:請在控制檯輸出資料1 - 10
            需求:請在控制檯輸出資料10 - 1*/
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
        System.out.println("--------------------------");
        for (int j = 10; j >= 1; j--) {
            System.out.println(j);
        }

    }
}

eg3

public class For2 {

    public static void main(String[] args) {

//        需求:求出1 - 10 之間資料之和
        int i;
        int sum = 0;
        for (i = 1; i <= 10; i++) {
            sum += i;
        }
        System.out.println("和是" + sum);


//        需求:求出1 - 100 之間偶數和
//        需求:求出1 - 100 之間奇數和
        int ji = 0;
        int ou = 0;
        for (i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                ou += i;
            } else {
                ji += i;
            }
        }
        System.out.println("偶數和是" + ou);
        System.out.println("奇數和是" + ji);


    }
}

eg4

public class For3 {
    /*  需求:在控制檯輸出所有的”水仙花數”

      所謂的水仙花數是指一個三位數,其各位數字的立方和等於該數本身。
      舉例:153 就是一個水仙花數。
      153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 1 + 125 + 27 = 153
      思路:1.採用迴圈
      定義一個統計變數*/
    public static void main(String[] args) {
        int s = 0;
        for (int i = 100; i <= 1000; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            int flower = ge * ge * ge + shi * shi * shi + bai * bai * bai;
            if (i == flower && i>100) {
                s++;
                System.out.println("第"+ s +"個水仙花數是 " +i );
            }
        }
        System.out.println("number = "+s);
    }
}

二、while迴圈
格式:
初始化條件語句;
while(判斷條件語句){
迴圈體語句;
控制條件語句;
}
執行流程:
a:執行初始化條件語句;
b:執行判斷條件語句,看其返回值是true還是false
如果是true,就繼續執行
如果是false,就結束迴圈
c:執行迴圈體語句;
d:執行控制條件語句
e:回到b繼續。
eg`

public class While {
    public static void main(String[] args){
//       輸出1-10;
//       輸出1-100之間的偶數和
        int i=1;
        while(i<=10){
            System.out.println(i);
            i++;
        }
        System.out.println("----------------------");
        int j=1;
        int sum=0;
        while(j<=100){
            if(j%2==0) {
                sum += j;
            }
            j++;

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

三、do…while迴圈
格式:
初始化條件語句;
do {
迴圈體語句;
控制條件語句;
}while(判斷條件語句);
執行流程:
a:執行初始化條件語句;
b:執行迴圈體語句;
c:執行控制條件語句;
d:執行判斷條件語句,看其返回值是true還是false
如果是true,就繼續執行
如果是false,就結束迴圈
e:回到b繼續。
eg

public class DoWhile {
    public static void main(String[] args){
        int i=1;
        do{
            System.out.println("倩倩是個寶寶");
            i++;
        } while(i<=10);
    }
}

四、三種迴圈的區別
a:do…while迴圈至少執行一次迴圈體。
而for,while迴圈必須先判斷條件是否成立,然後決定是否執行迴圈體語句。
b:A: 如果你想在迴圈結束後,繼續使用控制條件的那個變數,用while迴圈,否則用for迴圈。不知道用for迴圈。因為變數及早的從記憶體中消失,可以提高記憶體的使用效率。
B:建議優先考慮for迴圈,然後是while迴圈 ,最後是do…while迴圈