for循環


循環語句-for循環

  • 循環:

    循環語句可以在滿足循環條件的情況下,反復執行某一段代碼,這段被重復執行的代碼被稱為循環體語句,當反復 執行這個循環體時,需要在合適的時候把循環判斷條件修改為false,從而結束循環,否則循環將一直執行下去,形 成死循環。

  • for循環格式:

for (初始化語句;條件判斷語句;條件控制語句) {
    循環體語句;
}
  • 格式解釋:

    • 初始化語句: 用於表示循環開啟時的起始狀態,簡單說就是循環開始的時候什么樣

    • 條件判斷語句:用於表示循環反復執行的條件,簡單說就是判斷循環是否能一直執行下去

    • 循環體語句: 用於表示循環反復執行的內容,簡單說就是循環反復執行的事情

    • 條件控制語句:用於表示循環執行中每次變化的內容,簡單說就是控制循環是否能執行下去

  • 執行流程:

    ①執行初始化語句

    ②執行條件判斷語句,看其結果是true還是false

    ​ 如果是false,循環結束

    ​ 如果是true,繼續執行

    ③執行循環體語句

    ④執行條件控制語句

    ⑤回到②繼續

for循環案例:

/*需求:在控制台輸出1-5和5-1的數據 */
public class ForTest01 {
    public static void main(String[] args) {
        //需求:輸出數據1-5
        for(int i=1; i<=5; i++) {
            System.out.println(i);
        }
        System.out.println("--------");
        //需求:輸出數據5-1
        for(int i=5; i>=1; i--) {
            System.out.println(i);
        }
    }
}

for循環案例:

/*需求:求1-5之間的數據和,並把求和結果在控制台輸出 */
public class ForTest02 {
    public static void main(String[] args) {
        //求和的最終結果必須保存起來,需要定義一個變量,用於保存求和的結果,初始值為0
        int sum = 0;
        //從1開始到5結束的數據,使用循環結構完成
        for(int i=1; i<=5; i++) {
            //將反復進行的事情寫入循環結構內部
             // 此處反復進行的事情是將數據 i 加到用於保存最終求和的變量 sum 中
            sum += i;
            /*
                sum += i;    sum = sum + i;
                第一次:sum = sum + i = 0 + 1 = 1;
                第二次:sum = sum + i = 1 + 2 = 3;
                第三次:sum = sum + i = 3 + 3 = 6;
                第四次:sum = sum + i = 6 + 4 = 10;
                第五次:sum = sum + i = 10 + 5 = 15;
            */
        }
        //當循環執行完畢時,將最終數據打印出來
        System.out.println("1-5之間的數據和是:" + sum);
    }
}
View Code

本題要點:

  • 今后遇到的需求中,如果帶有求和二字,請立即聯想到求和變量

  • 求和變量的定義位置,必須在循環外部,如果在循環內部則計算出的數據將是錯誤的

for循環案例

/*需求:求1-100之間的偶數和,並把求和結果在控制台輸出 }*/
public class ForTest03 {
    public static void main(String[] args) {
        //求和的最終結果必須保存起來,需要定義一個變量,用於保存求和的結果,初始值為0
        int sum = 0;
        //對1-100的數據求和與1-5的數據求和幾乎完全一樣,僅僅是結束條件不同
        for(int i=1; i<=100; i++) {
            //對1-100的偶數求和,需要對求和操作添加限制條件,判斷是否是偶數
            if(i%2 == 0) {
                sum += i;
            }
        }
        //當循環執行完畢時,將最終數據打印出來
        System.out.println("1-100之間的偶數和是:" + sum);
    }
}

for循環案例:

/*
需求:在控制台輸出所有的“水仙花數” 
解釋:什么是水仙花數?
- 水仙花數,指的是一個三位數,個位、十位、百位的數字立方和等於原數
  - 例如153  3*3*3 + 5*5*5 + 1*1*1 = 153
思路:
1. 獲取所有的三位數,准備進行篩選,最小的三位數為100,最大的三位數為999,使用for循環獲取
2. 獲取每一個三位數的個位,十位,百位,做if語句判斷是否是水仙花數
*/
public class ForTest04 {
    public static void main(String[] args) {
        //輸出所有的水仙花數必然要使用到循環,遍歷所有的三位數,三位數從100開始,到999結束
        for(int i=100; i<1000; i++) {
            //在計算之前獲取三位數中每個位上的值
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/10/10%10;
            
            //判定條件是將三位數中的每個數值取出來,計算立方和后與原始數字比較是否相等
            if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
                //輸出滿足條件的數字就是水仙花數
                System.out.println(i);
            }
        }
    }
}
View Code

for循環案例

/*需求:在控制台輸出所有的“水仙花數”,要求每行打印2個*/
public class Demo6For {
    /*
        需求:在控制台輸出所有的“水仙花數”,要求每行打印2個

        System.out.print (打印內容);    打印后不換行
        System.out.println(打印內容);    打印后換行

        分析:
            
            1. 定義變量count,用於保存“打印過”的數量,初始值為0
            2. 在判定和打印水仙花數的過程中,拼接空格, 但不換行,並在打印后讓count變量+1,記錄打印過的數量
            3. 在每一次count變量+1后,判斷是否到達了2的倍數,是的話,換行。

    */
    public static void main(String[] args){
        // 1. 定義變量count,用於保存“打印過”的數量,初始值為0
        int count = 0;
        for(int i = 100; i <= 999; i++){
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 10 / 10 % 10;
            
            if(    (ge*ge*ge + shi*shi*shi + bai*bai*bai) == i){
                //  2. 在判定和打印水仙花數的過程中,拼接空格, 但不換行,並在打印后讓count變量+1,記錄打印過的數量
                System.out.print(i + " ");
                count++;
                // 3. 在每一次count變量+1后,判斷是否到達了2的倍數,是的話,換行
                if(count % 2 == 0){
                    System.out.println();
                }
            }
        }
    }
}
View Code

本題要點:

  • 今后如果需求帶有統計xxx,請先想到計數器變量

  • 計數器變量定義的位置,必須在循環外部


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM