多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

java教程

java switch基礎介紹及具體使用方法

閱讀 (2419)

在編寫代碼時,邏輯判斷是避免不了的,switch case語句在很多編程語言中的功能都是用于條件判斷,java中為多路分支選擇流程專門提供了switch語句,switch語句根據一個表達式的值,選擇運行多個操作中的一個。當需要對選項進行等值判斷時,使用switch語句更加簡潔明了。switch的case語句可以處理int,short,byte,char類型的值,但是不能處理long,String等類型。說起來你應該也會想到另一個常用的條件判斷語句if else,本文重點介紹java中switch case語句的用法,但是會在篇末對兩種語句的區別做一個總結。


java switch


java switch基礎語法

switch(表達式){ 
case 表達式常量1:語句1breakcase 表達式常量2:語句2break; 
...... 
case 表達式常量n:語句n; 
break; 
[default:語句n+1;] 
} 

其中,一個case表達式常量成為標號,代表一個case分支的入口。switch語句在運行時首先計算switch圓括號中“表達式”的值,這個值必須是整型或字符型的,同時后面各個case表達式常量的值的類型應與switch圓括號中“表達式”的值類型一致。一個case語句代表一個制定操作,然后轉向結構出口。default子句是可選的,當表達式的值與case表達式常量的值都不匹配時,就運行default子句,轉向結構出口。 

java里switch的執行順序

switch表達式的值決定選擇哪個case分支,如果找不到相應的分支,就直接從"default" 開始輸出。
當程序執行一條case語句后,因為例子中的case分支中沒有break 和return語句,所以程序會執行緊接于其后的語句。  

public class Switch {
    public static void main(String[] args)
     {
        int x=0;
       switch(x)
       {
        default:
            System.out.println("default");
        case 1:
            System.out.println(1);
        case 2:
            System.out.println(2);
        }
    }
}

 輸出結果如下:

default
1
2

public class Switch {
    public static void main(String[] args) {
        int x = 0;
        switch (x) {
        default:
            System.out.println("default");
        case 0:
            System.out.println(0);
        case 1:
            System.out.println(1);
       case 2:
            System.out.println(2);
        }
    }
}
輸出結果如下:
0
1
2

public class Switch {
    public static void main(String[] args) {
        int x = 0;
        switch (x) {
        case 0:
            System.out.println(0);
        case 1:
            System.out.println(1);
        case 2:
            System.out.println(2);
        default:
            System.out.println("default");
        }
    }
}
輸出結果如下:
0
1
2
default

java switch語句注意事項

java switch語句注意事項

switch(A),括號中A的取值只能是整型或者可以轉換為整型的數值類型,比如byte、short、int、char、還有枚舉;需要強調的是:long和String類型是不能作用在switch語句上的。

     

case B:C;case是常量表達式,也就是說B的取值只能是常量(需要定義一個final型的常量,后面會詳細介紹原因)或者int、byte、short、char(比如1、2、3、200000000000(注意了這是整型)),如果你需要在此處寫一個表達式或者變量,那么就要加上單引號; case后的語句可以不用大括號,就是C不需要用大括號包裹著;

     

default就是如果沒有符合的case就執行它,default并不是必須的。


案例分析:

1.標準型(case后面都有break語句,case后的值都是整數)

int i=3; 
switch(i) 
{ 
case 1: 
System.out.println(1); 
break; 
case 2: 
System.out.println(2); 
break;  
default: 
System.out.println("default"); 
break; 
} 

2.常量型(case后面都有break語句,case后的值都是常量)

private final int NUM1=1private final int NUM2=1int i=3; 
switch(i) 
{ 
case NUM1: 
System.out.println(1); 
break; 
case NUM2: 
System.out.println(2); 
break;  
default: 
System.out.println("default"); 
break; 
} 

3.表達式型(case后面都有break語句,case后的值都是表達式)

int i=3; 
int b = 2;
switch(i) 
{ 
case ‘類名.getId()‘: 
System.out.println(1); 
break; 
case ‘b‘ 
System.out.println(2); 
break;  
default: 
System.out.println("default"); 
break; 
}

實例:java 用switch語句解決月薪范圍問題

public class SwitchDemo {
    public static void main(String[] args) {
 
        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

switch和if語句的區別

Java中switch和if語句的區別

switch和if語句都是Java的選擇語句,這兩種語句都是允許在程序運行時控制程序的執行過程。

switch和if-else相比,由于使用了Binary Tree算法,絕大部分情況下switch會快一點,除非是if-else的第一個條件就為true。 


編譯器編譯switch與編譯if...else...不同。不管有多少case,都直接跳轉,不需逐個比較查詢。 

 

相比于if-else結構,switch的效率絕對是要高很多的,但是switch使用查找表的方式決定了case的條件必須是一個連續的常量。而if-else則可以靈活的多。

  
switch效率高,從匯編代碼可以看出來。switch只計算一次值,然后都是test。
  

switch的效率與分支數無關。當只有分支比較少的時候,if效率比switch高(因為switch有跳轉表)。分支比較多,那當然是使用switch。


關閉
程序員人生
主站蜘蛛池模板: 国产精品视频1区 | 中文字幕视频免费在线观看 | 真实男女xx00动态视频 | 国产精品久久久久国产精品三级 | 国产亚洲第一 | 天堂亚洲欧美日韩一区二区 | 第一福利视频网 | 劲爆欧美精品13页 | 亚洲高清中文字幕一区二区三区 | 午夜性色福利视频 | 午夜网站免费版在线观看 | 欧美日韩a级a | 国产成人高清亚洲一区久久 | 97久久久久国产精品嫩草影院 | 伊人久久大香线蕉精品哪里 | 精品亚洲成a人在线观看 | 乱在线伦视频免费 | 亚洲欧美色综合一区二区在线 | 亚洲日本一区二区三区在线不卡 | 国产亚洲精品久久久久91网站 | 国产国产人在线成免费视频69 | 澳门成人免费永久视频 | 亚洲欧美综合一区二区三区四区 | 9久热久爱免费精品视频在线观看 | 亚洲第一页在线 | 亚洲精品综合一二三区在线 | 在线观看中文字幕码2022 | 性色网址 | 岛国福利片 | 黄色网址免费大全 | 奇奇网免费影视片 | 黑粗硬大欧美视频 | 精品亚洲永久免费精品 | 国产精品视频福利 | 成人午夜精品久久久久久久小说 | 欧美日韩中文 | 最近中文国语字幕在线播放视频 | 国产精品亚洲二区在线 | 亚洲视频在线观看免费 | 波多野结衣福利视频 | 欧美日韩精品一区二区三区视频在线 |