在jdk 7 之前,switch 只能支援 byte、short、char、int 這幾個基本資料型別和其對應的封裝型別。switch後面的括號裡面只能放int型別的值,但由於byte,short,char型別,它們會 自動 轉換為int型別(精精度小的向大的轉化),所以它們也支援。
注意,對於精度比int大的型別,比如long、float,doulble,不會自動轉換為int,如果想使用,就必須強轉為int,如(int)float;
jdk1.7之前,為什麼不可以呢?
1switch (expression) //
括號裡是乙個表示式,結果是個整數
2
jdk1.7後,整形,列舉型別,boolean,字串都可以。
1public
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...