1. 程式人生 > 實用技巧 >04迴圈結構(while/do-while/for)

04迴圈結構(while/do-while/for)

迴圈結構(while/do-while/for)

1.while迴圈

1.語法:

while ( 迴圈條件 ) { 迴圈體

}

2.用途:while便於處理迴圈次數確定或者迴圈次數不確定的情況

3.使用的必要條件

(1)計數器初始化

(2)判斷條件

(3)迴圈體

(4)計數器變化

4.while執行過程

(1)計數器初始化,並且只執行一遍

(2)執行判斷條件

(3)如果條件成立 執行的程式碼

(4)計數器變化

(5)轉到第二步繼續執行

5.死迴圈產生的原因

(1)計數器沒有變化

(2)條件寫為true

package com.qfedu.test1;
​
import
java.util.Scanner; ​ public class Test4 { public static void main(String[] args) { // 每天檢查 是否合格 上午閱讀理論 下午敲程式碼 // while迴圈可以處理迴圈此固定 和 迴圈次數不固定的情況 Scanner input = new Scanner(System.in); System.out.println("上午閱讀教材"); System.out.println("下午敲程式碼"); System.out.println(
"請輸入你今天學習任務是否合格了?Y/N"); String answer = input.next(); while(answer.equals("N")) { //迴圈體 閱讀教材 敲程式碼 System.out.println("上午閱讀教材"); System.out.println("下午敲程式碼"); System.out.println("請輸入你今天學習任務是否合格了?Y/N"); answer = input.next(); } System.out.println(
"恭喜你完成任務"); } }

2.do-while迴圈

語法:

do {

迴圈體

} while ( 迴圈條件 );

1.用途:do-while也可以用於處理迴圈次數確定或者次數不確定去情況

do-while迴圈先執行再判斷,不管條件是否成立,至少執行一次

2.不管是while迴圈還是do-while迴圈不可少的部分 (1)計數器 (2)判斷條件 (3)迴圈體 (4)計數器變化

3.執行過程

(1)執行迴圈體

(2)計數器變化

(3)判斷條件

(4)如果條件成立,繼續執行迴圈體

package com.qfedu.test2;
​
import java.util.Scanner;
​
public class Test1 {
    public static void main(String[] args) {
        // 先上機測試 測試以後再檢查是否合格 不合格繼續上機 合格的話停止
        // do-while 和 while迴圈 
        // while是先判斷後執行 如果條件不成立 一次都不執行
        // do-while 先執行 後判斷 不管條件是否成立 至少執行  先斬後奏
        Scanner input = new Scanner(System.in);
            
//      do {
//          迴圈體
//      }while(布林表示式);
        String answer;
        do {
            System.out.println("上級測試完成……");
            System.out.println("請輸入是否合格?Y/N");
            answer = input.next();
        }while(answer.equals("N"));
        
        System.out.println("恭喜你完成任務");
    }
}

3.for迴圈

語法:

for(計數器初始化; 判斷條件 ; 計數器變化) {

迴圈體;

}

1.for迴圈執行過程

(1)計數器初始化 int j = 1 最先執行 並且只執行一次

(2)判斷條件 j <= 100

(3)迴圈體 System.out.println("for迴圈好好學習" + j);

(4)執行變數變化 j++

(5)接著繼續執行 判斷條件 也就是第二步

package com.qfedu.test4;
​
import java.util.Scanner;
​
public class Test1 {
    public static void main(String[] args) {
        // main alt + / 
        // alt + / 程式碼提示快捷鍵
        // sout  alt + / 
        // syso alt + /
        
        Scanner input = new Scanner(System.in);
        // 需求 迴圈錄入5門成績你計算平均分
        
        double scoreSum = 0;// 用於儲存所有的分數 之和
        for(int i = 1; i <= 5 ; i ++) {
            System.out.println("請輸入第" + i + "門成績");
            int score = input.nextInt();
            System.out.println("第" + i + "門成績是" + score);
            scoreSum += score;
        }
        
        System.out.println("總分數" + scoreSum);
        System.out.println("平均分是" + scoreSum / 5);
​
    }
}

4.break關鍵字

使用場景:

(1)switch,表示跳出當前case塊0)

(2)迴圈中,表示跳出當前迴圈

如果迴圈中有switch,那麼switch中的break依然只是跳出case塊,不會跳出迴圈。

break在迴圈中通常結合流程控制語句來使用,表示中斷迴圈,沒有執行完的迴圈次數,不再執行。

package com.qfedu.test6;
​
import java.util.Scanner;
​
public class Test1 {
    public static void main(String[] args) {
        // 需求 迴圈錄入成績 計算平均分   如果輸入為負數 那麼停止錄入
        Scanner input = new Scanner(System.in);
        double sum = 0;
        int i = 1;
        for (; i <= 5; i++) {
            System.out.println("請輸入第 " + i + "門成績");
            int score  = input.nextInt();
            if(score < 0) {
                System.out.println("分數錄入錯誤,停止錄入");
                break;
            }
            sum += score;
        }
        System.out.println("總分數是" + sum);
        System.out.println("平均分是" + sum / i);
    }
}

5.continue關鍵字

適用場景:只能在迴圈中使用

continue表示跳出本次迴圈,繼續執行下一次迴圈,通常也是結合流程控制語句來使用

注意和break的區別

package com.qfedu.test7;
​
import java.util.Scanner;
​
public class Test1 {
    public static void main(String[] args) {
        // 迴圈錄入5門成績  統計分數大於80 所佔的比例 
        // 大於80分的人數 除以 總人數  
        double count = 0;
        Scanner input = new Scanner(System.in);
        for (int i = 1; i <= 5; i++) {
            System.out.println("請輸入第"+ i +"門成績");
            int score = input.nextInt();
            if(score <= 80) {
                System.out.println("當前分數不大於80,不進行記錄");
                continue;
            }
            count++;
        }
            
        System.out.println("當前大於80分的人數是" + count);
        System.out.println("大於80分的人數佔比是" + (count / 5 * 100) + "%");
    }
}

6.debug除錯

作用:當我們的程式程式碼過多,我們無法一眼看完程式的執行結果,可以使用debug,或者當我們的程式產生bug,而我們無法快速定位到出錯的程式碼,可以使用debug

斷點:在程式碼左側雙擊打斷點,表示我們的程式將在斷點停止

單步走:程式單步執行,step over(F6)