switch和while循環


switch多選擇結構

多選擇結構還有一個實現方式是switch case語句

switch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支

switch語句中的變量類型可以是:

byte 、short 、int、或者char

從JavaSE 7開始

switch支持字符串String類型了

同時case標簽必須為字符串常量或字面量

switch (expression){
    case value :
        //接語句
        break;//可選
    case value :
        //語句
        break;//可選
        //你可有任意數量的case語句
    default://可選
        //語句
}
public class SwitchDemo01 {
    public static void main(String[] args) {
        // case 穿透,break擊穿,后接break即switch語句被擊穿,一直往下跑,不再終止
        //switch 匹配一個具體的值
        char grade ='B';
        switch (grade){
            case  'A':
                System.out.println("優秀");
                break;//可選
            case  'B' :
                System.out.println("良好");
            case  'C'  :
                System.out.println("及格");
            case 'D':
                System.out.println("再接再厲");
            case 'E':
                System.out.println("掛科");
            default:
                System.out.println("未知等級");
        //此時若grade成B,輸出良好 及格 再接再厲 掛科 未知等級
        // 若grade改成A,則輸出優秀,因為有break擊穿,終止
        //若grade  改成無關的如F,輸出為未知等級
        //即switch中先找到一個case ,輸出,如果后邊有break擊穿,則循環停止,若沒有,一直往下走;若定位不到一個case,則從defaut輸出
        //因此。如果想得到單一的結果,則每一個case后邊加上一個break,用於停止循環        

        }

    }
}
即向下邊一樣每個后邊加一個break,用於終止循環
public class SwitchDemo01 {
    public static void main(String[] args) {
        // case 穿透,break擊穿,后接break即switch語句被擊穿,一直往下跑,不再終止
        //switch 匹配一個具體的值
        char grade ='B';
        switch (grade){
            case  'A':
                System.out.println("優秀");
                break;//可選
            case  'B' :
                System.out.println("良好");
                break;//可選
            case  'C'  :
                System.out.println("及格");
                break;//可選
            case 'D':
                System.out.println("再接再厲");
                break;//可選
            case 'E':
                System.out.println("掛科");
                break;//可選
            default:
                System.out.println("未知等級");

從JavaSE 7開始

switch支持字符串String類型了

public class SwitchDemo02 {
    public static void main(String[] args) {
        String name = "狂神";
        switch (name){
            case "秦疆":
                System.out.println("秦疆");
            break;
            case "狂神":
                System.out.println("狂神");
            break;
            default:
                System.out.println("是啥");
       //輸出狂神         
        }
    }
}

反編譯class文件

public class SwitchDemo02 {
    public static void main(String[] args) {
        //JDK7的新特性,表達結果可以是字符串!!!
        //字符的本質是數字,字符用hashCode()來一一對應的,從反編譯程序中可看出

        //反編譯: java....class(字節碼文件)....反編譯(在這里用IDEA來反編譯)
        //反編譯 看源碼,看class文件的源碼
        //直接找到project structure中找到要反編譯的文件,復制路徑,打開文件找到要反編譯的class文件,復制,然后打開IDE中的一個代碼程序文件夾(open in directory path),粘貼進去即得到反編譯的程序

        String name = "狂神";
        switch (name){
            case "秦疆":
                System.out.println("秦疆");
            break;
            case "狂神":
                System.out.println("狂神");
            break;
            default:
                System.out.println("是啥");
        }
    }
}

循環結構

while循環

do .....while循環

for循環

在java5中引入了一種主要用於數組的增強型for循環

while循環

最基本的循環,結構為:

while(布爾表達式){
   //循環內容
}

注意:

1.只要布爾表達式為true,循環就會一直執行下去

2.我們大多數情況是會讓循環停止下來的,我們需要一個讓表達式失效的方式來結束循環

3.少部分情況需要循環一直執行,比如服務器的請求響應監聽等

4.循環條件一直為true就會造成無限循環(死循環),我們正常的業務編程中應該盡量避免死循環。會影響程序性能或者造成程序卡死崩潰!

public class WhileDemo01 {
    public static void main(String[] args) {
        //輸出1-100
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);

        }
    }
}
注意i<100,i=100時,i++結果101賦值給i輸出

死循環

public class WhileDemo02 {
    public static void main(String[] args) {
        while (true){
            //while里一直為true,沒有限制,一直循環下去
            //主要用於等待客戶端連接,定時檢查等這種應用
        }
    }
}

計算1+2+3+...+100=?

 public static void main(String[] args) {
        //計算1+2+3+....+100等於多少?
        int i = 0 ;
        int sum = 0;
        while (i<100){
           i++;
            sum=sum + i;
        }
        System.out.println(sum);
        //輸出5050
    }
}
或者下面這樣也可,主要看i++的位置判斷何時終止
    public class WhileDemo03 {
    public static void main(String[] args) {
        //計算1+2+3+....+100等於多少?
        int i = 0 ;
        int sum = 0;
        while (i<=100){
            sum=sum + i;
            i++;
        }
        System.out.println(sum);
        //輸出5050
    }
}


免責聲明!

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



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