一般格式:
switch (表達式)
{
case 常量標號1:語句序列1;
break;
case 常量標號2:語句序列2;
break;
…
case 常量標號n:語句序列n;
break;
default: 語句S;
}
其中:
①表達式:可以控制程序的執行過程,表達式的結果必須是整數、字符或枚舉量值。
②case后面的常量標號,其類型應與表達式的數據類型相同。表示根據表達式計算的結果,可能在case的標號中找到,標號不允許重復,具有唯一性,所以,只能選中一個case標號。盡管標號的順序可以任意的,但從可讀性角度而言,標號應按順序排列。
③語句序列是switch語句的執行部分。針對不同的case標號,語句序列的執行內容是不同的,每個語句序列允許有一條語句或多條語句組成,但是case中的多條語句不需要按照復合語句的方式處理(用{}將語句括起來),若某一語句序列i為空,則對應的break語句可以省略(去掉)。
④break是中斷跳轉語句,表示在完成相應的case標號規定的操作之后,不繼續執行switch語句的剩余部分而直接跳出switch語句之外,繼而執行switch結構后面的第一條語句,如果不在switch結構的case中使用break語句。程序就會接着執行下面的語句。
⑤default用於處理所有switch結構的非法操作。當表達式的值與任何一個case都不匹配時,則執行default語句。
java 1.6(包括)以前,只是支持等價成int 基本類型的數據:byte ,short,char,int(其他的都不可以)。
1.7加入的新特性可以支持String類型的數據。
long是不可以的。。就算是通過強制的轉化也必須是轉成int。