<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 流程控制 [TOC] ## 導學 在之前的js學習中,我們同學也接觸到了關于流程控制的內容,事實上流程控制就是我們日常生活中的實際應用,比如我們有時候做一件事會從頭到尾的給做下去,有時候會根據實際情況選擇做某件事情,有時候會不斷重復的做某件事情。 那么,在我們的編程中也會存在類似的情況,本節課程我們就來學習如何去應用編程語法完成對流程的控制。 ## 流程控制分類 * 順序結構 * 判斷(分支選擇)結構 * 循環結構 ## 順序結構 程序是一個自上而下運行的過程。 ## 分支選擇結構 Java 中的分支選擇結構有 if 結構、switch 結構 ### if 結構 具備三種類型的結構表現形式 * **形式一:** ~~~ if (logic expression) { statement; } ~~~ 示例: ~~~ int age = 20; if (age > 18) { String name = "Tom"; System.out.println("我叫" + name + ",已經" + age + "歲了,我成年了!"); } ~~~ * **形式二:** ~~~ if (logic expression) { statement; } else { statement; } ~~~ 示例: ~~~ int age = 16; if (age > 18) { String name = "Tom"; System.out.println("我叫" + name + ",已經" + age + "歲了,我成年了!"); } else { System.out.println("我還未成年!"); } ~~~ * **形式三:** ~~~ if (logic expression) { statement; } else if (logic expression) { statement; } else { statement; } ~~~ 示例: ~~~ if (age >= 0 && age <= 10) { System.out.println("少年"); } else if (age <= 18) { System.out.println("青少年"); } else if (age <= 30) { System.out.println("青年"); } else if (age <= 50) { System.out.println("中年"); } else { System.out.println("老年"); } ~~~ ### switch 結構 swtich 語句是有控制表達式和多個 case 標簽塊組成。 > 在控制表達式中,只允許出現 byte、short、int、char四種基礎數據類型,在JDK1.7以后,支持 String 類型的控制表達式。 ~~~ switch (expression) { case condition1 : { statement; break; } case condition2 : { statement; break; } default : { statement; break; } } ~~~ 示例: ~~~ String color = "red"; switch (color) { case "red": { System.out.println("紅色"); break; } case "blue": { System.out.println("藍色"); break; } case "green": { System.out.println("綠色"); break; } default: { System.out.println("沒有找到"); break; } } ~~~ > 在 case 中要加入 break 關鍵字跳出; > 在實際的開發中,我們一般使用 if - else 結構替代 switch。swtich 結構應用的較少。 ## 循環結構 循環語句可以在滿足循環條件的情況下,反復執行某一段代碼。 被重復執行的代碼叫做**循環體**。 循環語句可能包含的部分有: * 初始化語句(init\_statement):一條或多條語句,這些語句用于完成一些初始化的工作。 * 循環條件(test\_expression):是一個 boolean 類型的表達式,這個表達式決定是否繼續執行循環體。 * 循環體(body\_statement):如果條件允許,循環體會被反復執行。 * 迭代語句(iteration\_statement):在一次循環體執行結束后,對循環體條件進行求值,通常用于控制循環條件中的變量,使得循環在合適的時候結束。 ### while 結構 ~~~ (init_statement); while (test_expression) { body_statement; [iteration_statement]; } ~~~ 示例: ~~~ int sum = 0; int i = 1; while (i <= 10) { sum = sum + i; i++; } System.out.println(sum); // 55 ~~~ ### do-while 結構 ~~~ (init_statement); do { body_statement; [iteration_statement]; } while (test_expression) ~~~ > 無論如何都會執行一次循環體內容 > 示例: ~~~java int i = 1; int sum = 0; do { sum += i++; // sum = sum + i; // i = i + 1; } while (i <= 10); System.out.println(sum); // 11 ~~~ ### for 循環 語法: ~~~ for ([init_statement]; test_expression; [iteration_statement]) { body_statement; } ~~~ 示例: ~~~ int sum = 0; for (int i = 1; i <= 28; i++) { sum = sum + i; } System.out.println(sum); ~~~ > 在實際的開發中,對于已知循環次數的遍歷,一般使用 for 循環。而且 for 循環的應用場景要比 while 循環多。 ### 控制循環結構 **break**:在循環體中,使用 break 關鍵字跳出**整個循環**。 ~~~ int flag = 6; int sum = 0; for (int i = 1; i <= 10; i++) { sum = sum + i; if (i == flag) { break; } } System.out.println(sum); // 21 ~~~ **continue**:在循環體中,使用 continue 跳出**本次循環**,循環還會繼續執行。 ~~~ int sum = 0; for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; } sum = sum + i; } System.out.println(sum); // 25 ~~~ ## 程序調試-debug 開發人員經常會在開發程序的時候出現錯誤。那么,如何快速的找出錯誤,就成為開發人員重要的一項技能。 我們把錯誤通常稱為bug,而把找錯誤叫做debug。 對于找錯誤,我們通常會采用調試這一方法,它的作用在于能讓程序員看清楚程序每一步的效果,在需要查看結果的時候,使用debug查看實際結果是否與預期結果一致。 >[warning]注意:編譯的錯誤,開發工具一般會自動的報錯,我們一般對程序進行調試是為了找出邏輯上的錯誤。 ~~~ 我們以這段代碼為例,進行調試 public static void main(String[] args) { int sum = 0; for(int n = 1; n <= 5; n++) { sum = sum + n; //輸出sum的值 System.out.println("sum=" + sum); } System.out.println("sum=" + sum); } ~~~ 步驟: 1. 設置斷點(斷點是指程序運行到點的位置就終止了,斷點可以設置多個) ![](https://img.kancloud.cn/2c/6c/2c6cf3f86c1530e8b36656c9d876e834_1018x599.png) 比如想要查看sum的值,就可以在藍色區域雙擊,就會出現一個小點,這就是斷點。雙擊和鼠標右鍵選擇也可以取消斷點。 2. 選擇調試運行 ![](https://img.kancloud.cn/35/f3/35f3556c912a07086a903b833ee914a2_1035x670.png) 鼠標右鍵選擇調試運行,或選擇如圖所示的調試運行的運行按鈕。 3. 打開debug視圖 ![](https://img.kancloud.cn/d2/7d/d27d21b11d13b0f36c270685bf0a1627_522x279.png) 4. 視圖作用 ![](https://img.kancloud.cn/1b/ec/1becb7fe2a5db3c4d3521ee5cf517a19_1361x726.png) 5. 快捷鍵調試 ~~~ F5進入函數,單步條數 F6不進入函數,單步調試 F7由函數內部,返回調用處 F8一直執行到下個斷點處,知道終止調試 ~~~ ## 練習 一、選擇 1. 請看下面的程序代碼,運行結果為: ![](https://img.kancloud.cn/26/98/269835ababfbaf834740c68a80450d0d_443x263.png) ~~~ A. 2 B. 3 C. 4 D. 編譯出錯,無結果 ~~~ 2. 當a=1,b=3,c=5,d=4時,執行完下面一段程序后x的值是() ![](https://img.kancloud.cn/7e/7e/7e7e631de53ee18d16f45d9a4dc39e53_461x543.png) ~~~ A. 1 B. 2 C. 3 D. 6 ~~~ 3. 關于switch結構,以下說法正確的是? ~~~ A. default語句在switch結構中是必需的 B. break語句在switch結構中是必需的 C. default語句后的語句總是會被執行 D. switch()小括號中的表達式可以是字符串類型 ~~~ 4. 關于選擇結構下列哪個說法是正確的? ~~~ A. if語句和else語句必須成對出現 B. if語句可以沒有else語句對應 C. switch結構中每個case語句中必須用break語句 D. switch結構中必須有default語句 ~~~ 5. 下面代碼的運行結果為() ![](https://img.kancloud.cn/ef/f1/eff148938a5975a0c9cb92e6543d6575_447x220.png) ~~~ A. 3 B. 7 C. 3 7 D. 7 3 ~~~ 6. 下列語句序列執行后,k 的值是? ![](https://img.kancloud.cn/31/3a/313a47c87791d60accac034186dc1bfc_370x175.png) ~~~ A. 0 B. 1 C. 2 D. 3 ~~~ 7. 下面關于這段程序的描述正確的是() ![](https://img.kancloud.cn/0f/d7/0fd7b05e5b209b92fdfd1fbba26c2f1f_443x144.png) ~~~ A. while循環執行10次 B. 循環是無限循環 C. 循環體語句一次也不執行 D. 循環體語句值執行一次 ~~~ 8. 下面這段代碼循環體執行()次 ![](https://img.kancloud.cn/89/26/8926b1e14586b0c3682fd9eed94ddede_266x146.png) ~~~ A. 1 B. 5 C. 6 D. 無限次 ~~~ 9. 下列語句序列執行后,j 的值是? ![](https://img.kancloud.cn/32/d3/32d30e065f31b286e7b4947970ad907a_440x137.png) ~~~ A. 3 B. 4 C. 5 D. 6 ~~~ 10. 以下正確的描述是 ~~~ A. continue語句的作用是結束整個循環的執行 B. 只能在循環體內和switch語句體內使用break語句 C. 在循環體內使用break語句或continue語句的作用相同 D. break語句是結束當前循環,但是繼續進行下一次循環 ~~~ 二、編程 1. 根據下面數學函數,編寫程序根據x的值,計算y的值,最后輸出x和y的值。(使用多重if-else結構完成) ![](https://img.kancloud.cn/16/be/16be93053f1e87f037b61e918e3748d3_238x151.png) 效果圖: ![](https://img.kancloud.cn/db/06/db06934fca5a42cbc4415a3bc31801e3_170x46.png) ~~~ public class IfElseDemo { public static void main(String[] args) { //定義整型變量x并初始化為-5 //定義整型變量y并初始化0 //根據所給條件,使用多重if-else結構求y的值 //輸出x和y的值 } } ~~~ 2. 給定一個字符變量,判斷該變量是否為元音字母并輸出。 任務: 1. 定義一個字符變量ch并初始化 2. 使用switch結構判斷是否為元音字母,如果是元音字母則輸出如效果圖所示的內容,如果不是元音字母則輸出:不是元音字母 提示: 元音字母為a、e、i、o、u ~~~ public class CharDemo { public static void main(String[] args) { //定義一個字符變量并初始化 //使用switch結構判斷是否為元音字母,并輸出對應的信息 } } ~~~ 3. 使用while循環求1到5的平方和。 ~~~ public class LoopDemo { public static void main(String[] args) { //定義整型變量n作為循環變量,并初始化 //定義整型變量sum存放和,并初始化 //使用while循環求1到5的平方和 //輸出平方和 } } ~~~ 4. 編寫一個程序,求出200到300之間的數,且滿足條件:它們三個數字之積為42,三個數字之和為12。 任務: 1. 循環遍歷200到300之間的整數 2. 分別取出個位、十位和百位上的數 3. 求三個數字的和與積 4. 判斷三個數字的積是否為42,三個數字的和是否為12,如果滿足條件則輸出該數 ~~~ public class LoopDemo { public static void main(String[] args) { //定義變量ge、shi、bai,用于存放個位、十位、百位上的數字 //使用for循環 //取出百位數 //取出十位數 //取出個位數 //計算三個數字之積 //計算三個數字之和 //如果積等于42并且和為12,則將滿足條件的數輸出 } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看