Switch能否用string做引數

2022-07-28 04:39:13 字數 564 閱讀 4564

在jdk 7 之前,switch 只能支援 byte、short、char、int 這幾個基本資料型別和其對應的封裝型別。switch後面的括號裡面只能放int型別的值,但由於byte,short,char型別,它們會 自動 轉換為int型別(精精度小的向大的轉化),所以它們也支援。

注意,對於精度比int大的型別,比如long、float,doulble,不會自動轉換為int,如果想使用,就必須強轉為int,如(int)float;

jdk1.7之前,為什麼不可以呢?

1

switch (expression) //

括號裡是乙個表示式,結果是個整數

2

jdk1.7後,整形,列舉型別,boolean,字串都可以。

1

public

class

teststring 16}

17 }

jdk1.7並沒有新的指令來處理switch string,而是通過呼叫switch中string.hashcode,將string轉換為int從而進行判斷。

具體可以參考:

Switch能否可以用string做引數

在jdk 7 之前,switch 只能支援 byte short char int 這幾個基本資料型別和其對應的封裝型別。switch後面的括號裡面只能放int型別的值,但由於byte,short,char型別,它們會 自動 轉換為int型別 精精度小的向大的轉化 所以它們也支援。注意,對於精度比i...

switch語句和列舉首用

insert code here switch語句與if語句相似,if 表示式 switch 整形數字,變數 switch的衍生產品,列舉 enum 列舉 把一些數字放到乙個類別中,給乙個別名,暱稱 typedef tpye型別 typedef enum nsuinteger ball 列舉型別名字...

string用char代替方法

知道stl後,極度愛偷懶,一看到陣列要排序,就想用string,好把它放到set裡面去,但是用stl會極度慢。其實好好想想還他方法對多個字串排序,用結構體,陣列定義到裡面去,再重組運算子,因此,避開string,可以使用結構體包含陣列的方式,比如在map中,乙個int對應乙個string,可以把st...