java流程控制

2020-08-14 19:09:37

1. 順序結構

  • Java的基本結構就是順序結構,除非特別指明,否則就是按照順序一句一句執行
  • 順序結構是最簡單的演算法結構
  • 執行方式:從上往下,依次執行
public class Demo {
 
    public static void main(String[] args) {
 
        System.out.println("這是第一句");
        System.out.println("這是第二句");
        System.out.println("這是第三句");
        System.out.println("這是第四句");
        
        /*
         輸出結果:
         這是第一句
         這是第二句
         這是第三句
         這是第四句
         */
 
    }
 
}

 


 

2. 選擇結構

  • java的選擇結構是根據條件判斷之後再做處理的一種語法結構,使程式執行更加靈活
  • 執行方式:根據判斷條件選擇要執行的語句分支

2.1 if單選結構

  • 擁有一個選擇分支,條件成立則執行分支語句,否則跳過繼續執行之後的語句
  • 語法結構:if(條件){程式碼塊}
public class Demo {
 
    public static void main(String[] args) {
 
        int num = 10;
        
        if(num>0) {
            System.out.println("num大於0");
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         num大於0
         結束
         */
 
    }
 
}

2.2 if-else雙選結構

  • 擁有兩個選擇分支,條件成立則執行if下的語句,否則執行else下的語句
  • 語法結構:if(條件){程式碼塊1} else {程式碼塊2}
public class Demo {
 
    public static void main(String[] args) {
 
        int num = -10;
        
        if(num>0) {
            System.out.println("num大於0");
        }else {
            System.out.println("num小於0");
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         num小於0
         結束
         */
 
    }
 
}

2.3 if-elseif-else多選結構

  • 擁有多個選擇分支,條件1成立則執行條件1下的語句,條件2成立則執行條件2下的語句,…,全都不成立執行else下的語句(else部分可不寫)
  • 語法結構:if(條件1){程式碼塊1} else if(條件2){程式碼塊2}…[else {程式碼塊n}]
public class Demo {
 
    public static void main(String[] args) {
 
        int score = 80;
        
        if(score>=90) {
            System.out.println("A");
        }else if(score>=80) {
            System.out.println("B");
        }else if(score>=70) {
            System.out.println("C");
        }else if(score>=60) {
            System.out.println("D");
        }else if(score>=0) {
            System.out.println("E");
        }else {
            System.out.println("成績有誤!");
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         B
         結束
         */
 
    }
 
}

2.4 switch-case多選結構

  • 擁有多個選擇分支,通過判斷變數與某一個值相等來選擇哪一個分支執行,都不相等則執行default分支(default部分可以不寫)
  • 每一個case分支的程式碼塊最後一般要新增break結束switch,否則將繼續執行下一個case分支
  • 語法結構:switch(判斷值){case 值1: 程式碼塊1 [break;] case 值2: 程式碼塊2 [break;] …default:程式碼塊n}
public class Demo {
 
    public static void main(String[] args) {
 
        int num = 3;
        
        switch(num) {
            case 1:
                System.out.println("num爲1");
                break;
            case 2:
                System.out.println("num爲2");
                break;
            case 3:
                System.out.println("num爲3");
                break;
            case 4:
                System.out.println("num爲4");
                break;
            case 5:
                System.out.println("num爲5");
                break;
            default:
                System.out.println("沒有num的值");
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         num爲3
         結束
         */
 
    }
 
}

 


 

3. 回圈結構

  • java的回圈結構用於執行具有重複性的工作,讓程式碼編寫更簡便
  • 執行方式:根據條件判斷執行重複的語句

3.1 while回圈結構

  • 通過判斷while條件是否成立來決定回圈體是否再次執行
  • 進入回圈體之前就進行判斷
  • 語法結構:while(條件){回圈體}
public class Demo {
 
    public static void main(String[] args) {
 
        //輸出0~4
        int num = 0;
        
        while(num<5) {
            System.out.println(num);
            num++;
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         0
         1
         2
         3
         4
         結束
         */
 
    }
 
}

3.2 do-while回圈結構

  • 通過判斷while條件是否成立來決定回圈體是否再次執行
  • 進入回圈體之後才進行判斷,回圈體至少執行一次
  • 在while(條件)後要加上「;」
  • 語法結構:do {回圈體}while(條件);
public class Demo {
 
    public static void main(String[] args) {
 
        int num = 10;
        
        do
        {
            System.out.println(num);
            num++;
        }while(num<5);
        
        System.out.println("結束");
        
        /*
         輸出結果:
         10
         結束
         */
 
    }
 
}

3.3 for回圈結構

  • for回圈結構是支援迭代的一種通用結構,是最有效,最靈活的回圈結構
  • for回圈結構在回圈之前就確定了回圈的次數
  • 語法結構:for(初始化;判斷條件;更新) {程式碼塊}
public class Demo {
 
    public static void main(String[] args) {
 
        //輸出0~4
        int num = 5;
        
        for(int i=0;i<num;i++) {
            System.out.println(i);
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         0
         1
         2
         3
         4
         結束
         */
        
        //for(;;)爲無條件回圈
 
    }
 
}

3.4 for回圈增強結構

  • for回圈增強結構主要用於陣列和集合
  • 語法結構:for(聲名語句:表達式) {程式碼塊}
public class Demo {
 
    public static void main(String[] args) {
 
        //輸出陣列arrNum的元素
        int[] arrNum = {1,2,3,4,5};
        
        for(int i:arrNum) {	//i應爲後面的陣列或集合對應的元素型別
            System.out.println(i);
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         1
         2
         3
         4
         5
         結束
         */
 
    }
 
}

 


 

4. break、continue、goto

4.1 break

  • break用於任何回圈語句以及switch多選結構中,其功能爲結束回圈語句或switch多選結構,即不執行回圈體或switch多選結構剩餘的語句
public class Demo {
 
    public static void main(String[] args) {
 
        //輸出0~5
        int num = 100;
        
        for(int i=0;i<num;i++) {
            System.out.println(i);
            if(i==5) {
                break;
            }
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         0
         1
         2
         3
         4
         5
         結束
         */
 
    }
 
}

4.2 continue

  • continue用於回圈語句,其功能爲結束當次回圈,即跳過當次回圈進行下一次回圈
public class Demo {
 
    public static void main(String[] args) {
 
        //輸出0到10的奇數
        int num = 10;
        
        for(int i=0;i<num;i++) {
            if(i%2==0) {
                continue;
            }
            System.out.println(i);
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         1
         3
         5
         7
         9
         結束
         */
 
    }
 
}

4.3 goto

  • java語言中雖然有goto關鍵字,但並未得到正式使用,只能在帶標籤的break和continue中看到goto的影子(不推薦使用)
public class Demo {
 
    public static void main(String[] args) {
 
        //輸出10到20的質數
        next:for(int i=10;i<=20;i++) {
            for(int j=2;j<i/2;j++) {
            	if(i%j==0) {
                    continue next;
                }
        	}
            System.out.println(i);
        }
        
        System.out.println("結束");
        
        /*
         輸出結果:
         11
         13
         17
         19
         結束
         */
 
    }
 
}