首先介紹一下switch語句的格式:
switch(需要判斷的表示式)
1,需要判斷的表示式
可能聽的比較多的是:只能是整形或字元型。
但switch中需要判斷的表示式的型別,其實不只是整形或字元型。
注意:switch中需要判斷的表示式的型別 可以是int, short ,byte,char,string,列舉。
由於byte,short,char都可以隱式轉換為int型,所以這些型別及其包裝型別也是可以的。switch string的支援從jdk1.7版本開始,是背後做了乙個轉換,用雜湊碼進行比較,而雜湊碼是整形的值。
注意:switch語句無法作用在float,double,long以及他們的包裝型別上。編譯時會提示出錯。
下面以string和int的包裝類integer為例:
public
class j_02
system.out.println("jg1:"+jg);
integer i=new integer(5);
switch(i)
system.out.println("jg2:"+jg);}}
執行結果:
2,default不是必須的,可寫可不寫,位置隨意,根據個人需要而定。如果放在case語句之前記得加上break ,否則會繼續執行default語句之後的語句,不管case的條件是否滿足,都會執行,因為他會把這個條件當成之前滿足的那個條件中的內容,所以直到遇到break才會退出,終止這個條件。
例如:
double a=1,b=2,jg=0;
integer i=new integer(5);
switch(i)
system.out.println("jg2:"+jg);
則會向下執行:jg=a+b;遇到break後跳出switch語句。
3,case後必須要跟常量!常量即不能改變的量。如:字元,字串,數字。
也可以是用final修飾的變數,因為用final修飾後就不能再改變啦!
例如:
final
int f=5;
integer i=new integer(5);
switch(i)
注意case後所跟的常量型別要和表示式的結果型別一致。
4,break。不加break會執行switch語句中當前語句之後的語句,直到遇到break或所有條件都不滿足之後跳出switch語句。
思考題:
以下**執行時得到什麼列印結果?
int i = 4;
switch (i) {
default:
system.out.println(「default」);
case 0:
system.out.println(「zero」);
break;
case 1:
system.out.println(「one」);
case 2:
system.out.println(「two」);
//default
zero
java中的switch語句
選擇語句 switch語句 編寫格式 switch 表示式 執行流程 表示式和case後面的常量進行比較 和哪個常量相同,就執行哪個case後面的程式,遇到break,就全部結束 關鍵字 swidth case default break switch語句中表示式的資料型別,根據不同的jdk版本,有...
java中的switch語句面試相關
switch的簡單寫法 switch a 首先,a部分值必須是int型的,或者是能夠自動進行轉換成int型的表示式。也就是說a部分可以是 byte short char int型的。其次,b部分的值必須是單個byte short char int型的值,或者是final型的變數。但是final型的變...
java的switch語句問題
switch引數為int,char等基本型別,case後直接跟常數 public static void fun int s switch引數為enum型別,case後面跟的要省去類名 enum type public static void fun type type switch引數為strin...