天天看點

java學習筆記(4)--循環

1:switch語句(掌握)

    (1)格式:

        switch(表達式) {

            case 值1:

                語句體1;

                break;

            case 值2:

                語句體2;

                break;

            ...

            default:

                語句體n+1;

                break;

        }

        格式解釋說明:

            switch:說明這是switch語句。

            表達式:可以是byte,short,int,char

                JDK5以後可以是枚舉

                JDK7以後可以是字元串

            case:後面的值就是要和表達式進行比較的值

            break:表示程式到這裡中斷,跳出switch語句

            default:如果所有的情況都不比對,就執行這裡,相當于if語句中的else

    (2)面試題

        switch語句的表達式可以是byte嗎?可以是long嗎?可以是String嗎?

            可以,不可以,JDK7以後可以

    (3)執行流程:

        A:首先計算表達式的值

        B:和每一個case進行比對,如果有就執行對應的語句體,看到break就結束。

        C:如果沒有比對,就執行default的語句體n+1。

    (4)注意事項:

        A:case後面隻能是常量,不能是變量,而且,多個case後面的值不能出現相同的

        B:default可以省略嗎?

            可以省略,但是不建議,因為它的作用是對不正确的情況給出提示。

            特殊情況:

                case就可以把值固定。

                A,B,C,D

        C:break可以省略嗎?

            可以省略,但是結果可能不是我們想要的。

            會出現一個現象:case穿透。

            最終我們建議不要省略

        D:default一定要在最後嗎?

            不是,可以在任意位置。但是建議在最後。

        E:switch語句的結束條件

            a:遇到break就結束了

            b:執行到末尾就結束了

    (5)案例:

        A:鍵盤錄入一個數字(1-7),輸出對應的星期幾。

        B:單項選擇題

        C:鍵盤錄入一個字元串的問題

            String s = sc.nextLine();

        D:根據給定的月份,輸出對應的季節

    (6)if語句和switch語句各自的場景

        A:if

            針對boolean類型的判斷

            針對一個範圍的判斷

            針對幾個常量的判斷

        B:switch

            針對幾個常量的判斷

2:循環語句(掌握)

    (1)有三種:for,while,do...while

    (2)for循環語句

        A:格式

            for(初始化語句;判斷條件語句;控制條件語句){

                循環體語句;

            }

            執行流程:

                a:執行初始化語句

                b:執行判斷條件語句

                    如果這裡是true,就繼續

                    如果這裡是false,循環就結束

                c:執行循環體語句

                d:執行控制條件語句

                e:回到b

        B:注意事項

            a:判斷條件語句無論簡單還是複雜,結果是boolean類型

            b:循環體語句如果是一條,可以省略大括号,但是不建議

            c:有分号就沒有左大括号,有左大括号就沒有分号

        C:案例

            a:輸出10次HelloWorld

            b:輸出1-10的資料

            c:輸出10-1的資料

            d:求1-10的和

            e:求1-100的和,求1-100的偶數和,求1-100的奇數和

            f:求5的階乘

            g:在控制台列印水仙花數

            h:統計水仙花個數

            i:改進版的回文數

                一個五位數

                個位 = 萬位

                十位 = 千位

                個位 + 十位 + 千位 + 萬位 = 百位

            j:統計1-1000之間同時滿足如下條件的資料有多少個

                x%3==2

                x%5==3

                x%7==2

    (3)while循環

        A:基本格式

            while(判斷條件語句) {

                循環體語句;

            }

            擴充格式:

            初始化語句;

            while(判斷條件語句){

                循環體語句;

                控制條件語句;

            }

            通過檢視這個格式,我們就知道while循環可以和for循環等價轉換。

        B:while的練習

            把for語句的練習用while改進

        C:for和while的差別

            a:使用上的差別

                for語句的那個控制條件變量,在循環結束後不能在使用了。

                而while的可以繼續使用。

            b:了解上的差別

                for适合于一個範圍的判斷

                while适合次數不明确的

                    舉例:吃葡萄

        D:案例:

            a:珠穆朗瑪峰問題

            b:小芳存錢問題(break以後才能做)

    (4)do...while循環

        A:基本格式

            do {

                循環體語句;

            }while(判斷條件語句);

            擴充格式:

            初始化語句;

            do {

                循環體語句;

                控制條件語句;

            }while(判斷條件語句);

            通過檢視格式,我們就可以看出其實三種循環的格式可以是統一的。

        B:三種循環的差別

            a:do...while循環至少執行一次循環體

            b:for和while必須先判斷條件是否是true,然後後才能決定是否執行循環體

    (5)循環使用的注意事項(死循環)

        A:一定要注意修改控制條件,否則容易出現死循環。

        B:最簡單的死循環格式

            a:while(true){...}

            b:for(;;){}

3:控制跳轉語句(掌握)

    (1)break:中斷的意思

        A:用在循環和switch語句中,離開此應用場景無意義。

        B:作用

            a:跳出單層循環

            b:跳出多層循環,需要标簽語句的配合

    (2)continue:繼續

        A:用在循環中,離開此應用場景無意義。

        B:作用

            a:跳出單層循環的一次,可以繼續下一次

        C:填空題

            for(int x=1; x<=10; x++) {

                if(x%3 == 0) {

                    //補齊代碼

                }

                System.out.println("Java基礎班");

            }

            如何讓控制台輸出2次:Java基礎班

            如何讓控制台輸出7次:Java基礎班

            如何讓控制台輸出13次:Java基礎班

    (3)return:傳回

        A:用于結束方法的,後面還會在繼續講解和使用。

        B:一旦遇到return,程式就不會在繼續往後執行。