Java流程控制包括順序控制、條件控制和循環控制。
順序控制,就是從頭到尾依次執行每條語句操作。條件控制,基於條件選擇執行語句,比方說,如果條件成立,則執行操作A,或者如果條件成立,則執行操作A,反之則執行操作B。循環控制,又稱為回路控制,根據循環初始條件和終結要求,執行循環體內的操作。
順序結構只能順序執行,不能進行判斷和選擇,因此需要分支結構。
Java有兩種分支結構:
Java中有三種主要的循環結構:
package com.hgd.study2; import java.util.Scanner; /** * java的流程控制:順序結構 分之機構 循環結構 * * @author HuTiger 順序結構:通過debug模式可以看出java程序的運行時順序結構的 * * 分支結構:if語句 * */ public class ProcessControl { public static void main(String[] args) { // IfStudy(); // SwitchCaseStudy(); // WhileStudy(); } /* * IF語句 */ private static void IfStudy() { /* * 根據條件表達的世界(true||false)來判斷是否進入語句塊 if(條件表達式){ 語句塊 } 繼續執行後面的語句 */ int i = 100; if (i > 60) { System.out.println(i); } System.out.println("後面需要執行的語句"); /* * if else 語句 */ // system.in就是標准輸入,可以獲取從鍵盤輸入的值 // 通過scanner(jdk提供給我們的工具)來處理獲取到的數據 System.out.println("請輸入分數!"); Scanner sc = new Scanner(System.in); int j = sc.nextInt();// 把用戶輸入的數賦值給j System.out.println("控制台獲取到的值是:" + j); if (j > 60) { System.out.println("通過"); } else { System.out.println("沒通過"); } System.out.println("當if else 執行後需要執行的內容"); /* * if else if else if ...else */ // 場景:將一個5(score)分制分為 :5分的評價等級A 4==B 3==C 其他是D Scanner sca = new Scanner(System.in); int score = sca.nextInt(); if (score >= 0 && score <= 5) { if (score == 5) { System.out.println("A"); } else if (score == 4) { System.out.println("B"); } else if (score == 3) { System.out.println("C"); } else { System.out.println("D"); } } else { System.out.println("輸入不合法"); } /* * 練習:百分制系統 90-100 優秀 75-89 良好 60-74 合格 其他 不合格 */ Scanner scan = new Scanner(System.in); int score1 = scan.nextInt(); if (score1 >= 0 && score1 <= 100) { if (score1 >= 90 && score1 <= 100) { System.out.println("優秀"); } else if (score1 >= 75) { System.out.println("良好"); } else if (score1 >= 60) { System.out.println("合格"); } else { System.out.println("不合格"); } } else { System.out.println("輸入不合法"); } } /* * switch case */ private static void SwitchCaseStudy() { /* * 分支語句:switch case key:需要比較的表達式 value:與表達式進行比較的值 * 執行流程:如果key和value比較的結果為true,那麼將執行case部分的代碼,case部分可以有多個 類似於else if 部分 * 區別是key和value之間的比較只能是== default部分是不滿足以上任何去執行的代碼 ,類似於else * * switch 後面括號中的表達式的值必須是符合byte,char,short,int類型的常量表達式 jdk1.7以後可以使用string * ,而不能用浮點型或long類型 * * switch(key) { case value: break; default: break; } */ // 場景:將一個5(score)分制分為 :5分的評價等級A 4==B 3==C 其他是D Scanner sc = new Scanner(System.in); int score = sc.nextInt(); switch (score) { case 5: System.out.println("A"); break;// 標准寫法 break不能少 跳出當前語句塊,如果沒有break會直接進入下一個case語句 case 4: System.out.println("B"); break; case 3: System.out.println("C"); break; default: System.out.println("D"); break; } } /* * while 循環和do while */ private static void WhileStudy() { /* * 執行流程: 當條件表達式為true的時候進入代碼塊,執行需要執行的代碼 當條件表達式為false的時候執行後面的語句 * * while(條件表達式){ 需要執行的代碼部分 } 後面的語句 */ /* * 場景:輸入1-100的整數分析:給輸出的值一個變量I,當i在1-100之間的時候輸出 */ int i = 1;// 循環的起點 while (i <= 100) { System.out.println(i); // 給出循環的步長 i++; } System.out.println("打印結束"); /* * do while * * do{ * }while(條件表達式) */ int a=1; do{//語句塊中的內容無論條件是否滿足都會先執行一次 System.out.println(a); a++; } while(a<=0); } /* * for循環 */ private static void ForStudy() { /* * 場景:打印1-100 int i=1是循環的起點 i++ 循環的補償 i<=100 循環的條件 */ for (int i = 1; i <= 100; i++) { System.out.println(i); } System.out.println("打印結束"); } }