1. 程式人生 > 程式設計 >Java switch使用原理及例項解析

Java switch使用原理及例項解析

這篇文章主要介紹了Java switch使用及例項解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

java中有兩個經常用於條件判斷的方法,一個是if{}else{},另一個就是switch()了。總的來說因為switch可以直接一對一滿足條件,不滿足條件的情況是不會執行的的所以switch的效率會相對if{}else{}更高一些,而且這兩個方法是可以無門檻互換的。

switch的使用:

  • 能用於switch判斷的型別有:byte、short、int、char(JDK1.6),還有列舉型別,但是在JDK1.7後添加了對String型別的判斷
  • case語句中少寫了break,編譯不會報錯,但是會一直執行之後所有case條件下的語句而不再判斷,直到default語句
  • 若果沒有符合條件的case就執行default下的程式碼塊,default並不是必須的,也可以不寫
switch(mark) {
      case 0:
        System.out.println(mark);
  break;
      case 10:
        System.out.println(mark);
     break;
      case 20:
        System.out.println(mark);
        break;
      }

這裡mark值是判斷條件,case 對應的是具體的值,如果mark=0或者mark=10或者mark=20,相對應的條件成立就會執行case中的程式

在這裡有一個思維誤區很容易出錯,看下面程式碼:

switch(mark) {
      case 0:
        System.out.println(mark);
        mark = 10;
        break;
      case 10:
        System.out.println(mark);
        mark = 20;
        break;
      case 20:
        System.out.println(mark);
        mark = 30;
        break;
      }

這段程式碼比和上面的程式碼相比,在每個case中會重新給mark賦值,讓這個重新賦的值和下一步的case相對應。

錯誤思維:如果mark的初始值是0,這個switch程式會執行三次,執行的順序依次是0,10,20。

因為我們在每一步的case中都重新給mark賦值了,所以不熟悉的很容易就會覺得這個switch會從上往下執行,凡是滿足條件的步驟都會執行。其實這個switch是隻會執行一次的,因為每個case後面都跟了一個break,這個break的作用就是跳出當前迴圈也就是跳出當前的switch,所以這個switch只會執行mark初始值對應的那個case,後面的步驟不會繼續執行。如果要想三個步驟都依次執行需要在switch外面加上一個while迴圈,在一定的條件內重複執行switch:如下加上while

while(mark<=30) {
      switch(mark) {
      case 0:
        System.out.println(mark);
        mark = 10;
        break;
      case 10:
        System.out.println(mark);
        mark = 20;
        break;
      case 20:
        System.out.println(mark);
        mark = 30;
        break;
      }
    }

總結:每次進入switch,如果每個case後面都用break跳出當前迴圈了,則不管mark的值怎麼變,只會執行一個case

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。