Java程序設計的基本結構 - 循環結構

Java程序設計的基本結構 - 循環結構

文本關鍵字:基本結構、循環結構、while、do-while、forjava

1、循環的基本結構

爲了講解方便,咱們能夠將循環結構劃分爲四個部分來進行描述。固然,這四個部分並非都要出現,甚至在都不出現時也能夠構成一個循環結構。而且,對於不一樣的循環結構,每一個部分的相對位置也不一樣。dom

1. 初始化部分

在進入循環結構以前能夠定義一些循環中以及循環結束後都要用到的變量,進行賦值。ide

2. 判斷條件部分

用於決定是否繼續進行循環,若是爲假,則循環結束。判斷部分能夠直接使用一個布爾類型的變量,或者使用表達式,可是必須保證表達式的結果爲布爾類型。工具

3. 循環體部分

循環結構的核心部分,用於書寫每次想要重複執行的代碼,一般要根據程序功能來設計。設計

4. 迭代部分

用於輔助控制循環的結束,在循環體以後執行,如變量自增等。
Java程序設計的基本結構 - 循環結構
與判斷結構相似,當不使用大括號時,循環結構只能控制一行代碼,一般咱們會添加大括號code

2、while循環

1. 循環結構

[初始化部分]
while(條件判斷部分){
    循環體
    [迭代部分]
}

2. 循環特色

對於while循環,一般用於循環次數不肯定時,如:讓使用者決定何時退出循環。blog

  • 能夠用一個布爾變量直接來決定循環是否繼續
  • 能夠用break關鍵字隨時跳出循環
  • 當條件判斷部分不成立時結束循環
  • 初始化部分和迭代部分能夠省略
  • 條件判斷部分後若是出現分號會致使結構直接結束

3. 示例程序

  • 循環輸出1到9
public static void main(String[] args){
    // 初始化部分
    int i = 1;
    // 括號中爲循環繼續執行的條件:當i的值小於等於9時
    while(i <= 9){
        // 循環體部分
        System.out.println(i);
        // 迭代部分:輔助控制循環結束或根據循環體的須要來寫
        i++;
    }
}
  • 猜字程序
import java.util.Scanner;
import java.util.Random;

public class Test{
    public static void main(String[] args){
        // 初始化Scanner,用於從鍵盤讀入數據
        Scanner sc = new Scanner(System.in);
        // 初始化隨機數生成工具
        Random random = new Random();
        // 隨機生成一個0~99的整數
        int n = random.nextInt(100);
        // 定義一個布爾類型的變量,用於控制循環的結束
        boolean flag = true; 
        // 使用flag做爲控制循環結束的變量       
        while(flag){
            System.out.println("請輸入一個數:");
            // 從鍵盤讀取一個數
            int temp = sc.nextInt();
            // 判斷輸入的數是否與隨機數相同,猜中則退出
            if(temp == n){
                System.out.println("猜中了!");
                // 修改flag爲false,使得循環退出        
                flag = false;
            }else{
                // 若是沒有猜中,就讓用戶本身決定是否是要繼續猜
                System.out.println("猜錯了!還要繼續嗎?1:繼續2:退出");
                // 若是輸入的數字爲2則退出(此處暫不考慮輸入出錯等其餘狀況)
                if(sc.nextInt() == 2){
                    // 修改flag爲false,使得循環退出        
                    flag = false;
                }
            }
        }
        // 使用後關閉
        sc.close();
    }
}

3、do-while循環

1. 循環結構

[初始化部分]
do{
    循環體
    [迭代部分]
}while(條件判斷部分);

Java程序設計的基本結構 - 循環結構

2. 循環特色

do-while循環與while循環的用法基本相同,主要的不一樣點在於循環體(迭代部分)必定會先執行一次,而後再進行判斷,這很是適合在初學時作成菜單程序。it

  • 能夠用一個布爾變量直接來決定循環是否繼續
  • 能夠用break關鍵字隨時跳出循環
  • 當條件判斷部分不成立時結束循環
  • 初始化部分和迭代部分能夠省略

3. 示例程序

  • 菜單程序

break只能跳出離本身最近一層的switch-case或循環結構,若是想直接跳出指定層的循環,須要使用到自定義標籤。自定義標籤的用法比較簡單,直接在一個循環結構的起始位置加一個單詞,配合冒號使用,在進行跳出時,能夠在break後面添加自定義標籤的名稱,便可跳出指定層的循環。for循環

import java.util.Scanner;

public class Test{
    public static void main(String[] args){
        // 初始化Scanner,用於從鍵盤讀入數據
        Scanner sc = new Scanner(System.in);
        // 在此處使用自定義標籤out(名稱能夠自定義)來進行標記
        out:do{
            System.out.println("****歡迎使用xxx系統****");
            System.out.println("****1.系統功能一*******");
            System.out.println("****2.系統功能二*******");
            System.out.println("****3.退出系統*********");
            System.out.print("請輸入功能選項:");
            // 從鍵盤讀入一個數選擇要執行的功能
            int select = sc.nextInt();
            switch(select){
                case 1:
                    // 功能一相關代碼
                    break;
                case 2:
                    // 功能二相關代碼
                    break;
                case 3:
                    // 指定跳出外層的do-while循環,不然只能跳出當前的switch-case結構
                    break out;
            }
        // 判斷條件一直爲真,除非用戶輸入選項3退出系統,則使用break跳出。
        }while(true);
        // 使用後關閉
        sc.close();
    }
}

4、for循環

1. 循環結構

for(初始化部分;條件判斷部分;迭代部分){
    循環體
}

2. 循環特色

for循環主要用於循環次數肯定的狀況,一般使用break直接跳出循環是因爲已經完成了所需工做,終止剩餘無用循環以提升程序運行效率。程序設計

  • for循環的一個明顯特色在於初始化部分,迭代部分的控制比較方便,能夠徹底在循環內部完成
  • 初始化部分寫在小括號中第一個位置,只會執行一次
  • 若是在初始化部分聲明一個新的變量,則該變量只能在循環內部使用
  • 判斷條件出如今小括號的中間位置,能夠是布爾類型的變量或表達式,也能夠直接省略使用break關鍵字手動跳出
  • 迭代部分一般用於變量的控制,每次循環體結束後執行
  • continue關鍵字能夠用於全部的循環結構,做用是當即結束當前循環(跳過循環體的剩餘部份內容,迭代部分依然會執行),進入下一次循環

3. 示例程序

  • 計算整數1~10的加和
public static void main(String[] args){
    // 定義一個整數類型變量,用於記錄結果
    int sum = 0;
    for(int i = 1;i <= 10;i++){
        // 根據邏輯,將每次獲得的值相加
        sum += i;
    }
    // 輸出計算結果
    System.out.println(sum);
}
  • 輸出整數0~100範圍內的全部偶數
public static void main(String[] args){
    for(int i = 0;i <= 100;i++){
        // 判斷當前數字的奇偶性,若是是奇數則跳過輸出語句
        if(i % 2 != 0){
            // 若是是奇數,將跳過循環體剩餘的部分,迭代部分不受影響
            continue;
        }
        System.out.println(i);
    }
    // 輸出計算結果
    System.out.println(sum);
}

5、死循環

死循環的出現是因爲咱們沒有正確的指定循環的終止條件和控制相關的變量,致使判斷條件部分一直爲真,使得循環結構沒法結束。但有些時候根據功能須要咱們會手動先構造一個死循環,而後使用break來進行跳出,如:菜單程序,由用戶來決定何時結束,進行循環的跳出。手動構建一個死循環十分簡單,可是若是意外的出現死循環就須要優先檢查條件判斷部分以及相關變量的變化了。

1. while循環

while(true){
    循環體
}

2. do-while循環

do{
    循環體
}while(true)

3. for循環

// 是的,你沒有看錯,全部的部分都不須要填寫,可是分號不能省略
for(;;){
    循環體
}
相關文章
相關標籤/搜索