1. 程式人生 > 其它 >Java 迴圈 for while do {...} while (...)

Java 迴圈 for while do {...} while (...)

迴圈控制

迴圈是程式組成的一個關鍵要素,迴圈就是讓一句程式碼按照你的要求迴圈執行。

Java中共有三種迴圈語句, 分別是:

  • for 迴圈
  • while 迴圈
  • do {...} while (...);

for 迴圈

語法:

for (初始化條件 ; 迴圈條件 ; 迴圈變數迭代) {
    迴圈操作(支援多語句);
    迴圈操作(支援多語句);
    迴圈操作(支援多語句);
}

for 說明:

  1. for 是關鍵字,表示迴圈控制
  2. for 有四個要素:
    1. 迴圈變數的初始化
    2. 迴圈條件
    3. 迴圈操作
    4. 迴圈變數迭代
  3. 迴圈操作可以有多條語句,也就是我們要迴圈執行的程式碼
  4. 如果迴圈操作只有一條語句,可以省略 {}
    ,但是建議保留,增強程式碼可讀性

for細節:

  1. 迴圈條件是返回一個布林值的表示式
  2. for (; 迴圈判斷條件 ;) 中的初始化和變數迭代可以寫到其他地方,但是兩邊的 ; 不能省略
  3. 迴圈初始值可以有很多條初始值語句,但要求型別一樣,並且中間用 , 隔開,迴圈變數迭代也可以有多條變數迭代語句,不同語句間同樣需要用 , 隔開

各種寫法:

public class Java_20_ForDetail {
	public static void main (String[] args) {

		// for 的多種寫法

		// 常規寫法
		for (int i = 0 ; i < 5 ; i++ ) {
			System.out.println(i);
		}

		System.out.println("=======================================");
		// 變數 及 變數迭代 在外寫法
		int i = 0;
		for (; i < 5 ;) {
			System.out.println(i);
			i++;
		}		


		System.out.println("=======================================");
		int count = 0;  // 作為無限迴圈的出口計數器
		// 死迴圈寫法
		for (;;) {

			// 這種寫法是在不知道具體迴圈次數的時候
			// 配合 判斷分支 一直迴圈 直到滿足推出條件 執行 break 結束迴圈
			// 迴圈必須擁有一個出口,不能出現死迴圈的情況
			if (4 < count) break;

			System.out.println("死迴圈中" + count);
			// 給計數器 +1
			count++;
		}


		System.out.println("=======================================");
		// 多語句寫法
		for (int count1 = 0, count2 = 8; count1 < count2; count1 += 2, count2++) {
			System.out.println("count1 = " + count1 + " count2 = " + count2);
		}

	}
}

實際應用:

public class ForExercise {
    public static void main (String[] args) {
    // 需求,列印 1-100之間是9的倍數的整數,統計個數,及總和
	// 建立變數統計個數 及 總和
	int count = 0;
	int sum_ = 0;
	// 開始迴圈
	for (int num = 1; num <= 100; num++) {
	    // 取餘
	    int surplus = num % 9;
	    switch (surplus) {  // 因為 滿足 switch 的型別需求 且需判斷的值不多,所以使用 switch
	        case 0:
            // 滿足條件, 給計數器 +1  累加 總和
		    count += 1;
		    sum_ += num;
		    System.out.println("Multiples of 9: " + num);
	    }
	}
	System.out.println("9 的倍數的整數有 " + count + " 個 總和是: " + sum_);

while迴圈

語法:

// 迴圈變數初始化
int count = 1;  // 也可以理解為計數器
while (count <= 10) {  // 一直迴圈,直到 count 大於 10 結束迴圈
    要迴圈執行的語句;
    // 迴圈變數迭代
    count++;  // 也可以理解為計數器 +1
}

while說明:

  1. while 是關鍵字表示迴圈
  2. while 同樣有四要素,只是四要素的放置位置與 for 有區別,不過原理都是一樣的(可以理解為上面 for 迴圈的變數 及 變數迭代 在外寫法)
  3. while 是先判斷,再執行

實際應用:

// while 實際應用
// 列印 1-100 之間所有能被3整除的數
// 定義迴圈起始值
int start_num = 1;
// 定義倍率關係變數
int mag = 3;
// 定義迴圈結束值
int end_num = 100;
// 開始定義迴圈條件
while (start_num <= end_num) { // 當 起始值 小於或等於 結束值 就會進入迴圈體
    int while_result = start_num % mag;
    switch (while_result) {
        case 0:
            System.out.println(start_num);
    }
    // 迴圈變數迭代
    start_num++;

do..while

基本語法:

迴圈變數初始化;
do {
    迴圈執行的語句;
    迴圈變數迭代;
} while (迴圈條件);

do...while 說明

  1. do {...} while (...); 是關鍵字
  2. 和上面的 for while 迴圈一樣,都有四要素, 只是執行順序不一樣
  3. do while 是先執行, 再判斷 (也就是說 至少會執行一次)

實際應用:

//統計 1-200之間能被 5 整除但 不能被 3 整除的個數
// 定義 迴圈 初始/結束 值
int do_start = 1;
int do_end = 200;
// 定義累加計數器
int do_count = 0;
// 定義整除變數
int mag1 = 5, mag2 = 3;
do {
    if ((do_start % mag1 == 0) && (do_start % mag2 != 0)) {
        // 滿足條件計數器 +1
        do_count += 1;
    }
    // 迴圈變數迭代
    do_start++;
} while (do_start <= do_end);
// 列印結果
System.out.println("能被 5 整除但 不能被 3 整除的個數是: " + do_count);