您現在的位置是:首頁 > 人文
Java程式設計中的switch開關語句
switch語句屬於什麼語句
switch是一個開關語句,在switch之中它所能夠判斷的資料型別僅僅是:
整數
、字元、JDK1。5之後追加了
列舉
,JDK1。7之後追加了String的判斷支援,如果要想使用switch必須結合case、default(不是必須的)來一起使用,其基本的語法結構如下:
switch (整數 | 字元 | 列舉 | String) {
case 匹配內容:
內容滿足時執行的語句 ;
[break ;]
case 匹配內容: {
內容滿足時執行的語句 ;
[break ;]
}, 。。。 [
default: {
內容都不滿足時執行 ;
[break ;]
}]
}
對於switch來講一定要記住,它無法像if語句那樣使用邏輯表示式進行判斷,僅僅支援數值的操作。
範例:
觀察switch語句
public class YootkDemo {
public static void main(String args[]) {
int ch = 1 ; // 定義整型變數
switch(ch) {
case 1:
System。out。println(“【1】匹配的數字“1””) ;
break ;
case 2:
System。out。println(“【2】匹配的數字“2””) ;
break ;
default:
System。out。println(“【NO】無法匹配的內容”) ;
break ;
}
}
}
以上的程式的處理結構是在實際的開發之中使用switch最為常見的結構形式,但是在使用的過程之中,也有可能出現一些認識上的問題,導致最終程式的執行結果與預期有所差別,下面針對於switch中出現一些情況進行說明。
1、 在編寫switch語句的過程之中每一個case語句中都會包含有一個“break”,這個語句的含義是阻止其他的判斷。如果現在在編寫語句的過程裡面沒有使用break,那麼會在第一個匹配的case之後所有的case都會執行,一直遇見到下一個break斷開。
範例:
觀察沒有break定義
public class YootkDemo {
public static void main(String args[]) {
int ch = 1 ; // 定義整型變數
switch(ch) {
case 1: // 這個位置開始匹配
System。out。println(“【1】匹配的數字“1””) ;
case 2:
System。out。println(“【2】匹配的數字“2””) ;
break ;
default:
System。out。println(“【NO】無法匹配的內容”) ;
}
}
}
如果不想造成最終判斷的錯誤的話,那麼一定要在程式之中編寫好break語句。
2、 在使用switch進行判斷的過程之中,不一定按照順序編寫case語句。
範例:
採用非有序的模式定義case語句
public class YootkDemo {
public static void main(String args[]) {
int ch = 1 ; // 定義整型變數
switch(ch) {
default:
System。out。println(“【NO】無法匹配的內容”) ;
break ;
case 2:
System。out。println(“【2】匹配的數字“2””) ;
break ;
case 1:
System。out。println(“【1】匹配的數字“1””) ;
break ;
}
}
}
3、 在早期的switch語句結構之中,除了數字之外最主要的支援就是字元了(因為字元可以和整型自動互相轉換)
public class YootkDemo {
public static void main(String args[]) {
char choose = ‘a’ ; // 小寫字母
switch(choose) {
default:
System。out。println(“【NO】無法匹配的內容”) ;
break ;
case ‘A’:
System。out。println(“【A】匹配的字母“A””) ;
break ;
case ‘a’:
System。out。println(“【a】匹配的字母“a””) ;
break ;
}
}
}
以上的這些做法都是switch最為傳統的使用形式,但是在JDK 1。7之後(是Oracle收購SUN之後的第一個版本)支援有String的判斷,但是僅僅是進行完整的判斷。
範例:
在switch語句之中使用String
public class YootkDemo {
public static void main(String args[]) {
String message = “沐言優拓” ;
switch (message) {
case “yootk”:
System。out。println(“【yootk】www。yootk。com”) ;
break ;
case “沐言優拓”:
System。out。println(“【沐言優拓】爆可愛的小李老師!”) ;
break ;
default:
System。out。println(“【NOTHING】請說人話”) ;
break ;
}
}
}
一定需要注意的是,這種字串與switch的結合匹配主要使用的形式是全匹配。
推薦文章
- 藏在照片裡的老北京
在今天,北京這座現代化的大都市留給我們的印象更多是它深厚的文化底蘊、迅速發展的城市建設以及生活在北京的土著居民的風貌...
- 【關注】沽源縣退役軍人事務局關於《河北省退役軍人優待證》審驗工作的通知
沽源縣退役軍人事務局關於《河北省退役軍人優待證》審驗工作的通知各鄉鎮退役軍人服務站:為紮實落實《河北省退役軍人公共服務優待辦法(試行)》,確保全縣退役軍人在河北省行政區域內的公共服務機構和場所繼續享受優先或優惠待遇,自即日起啟動《河北省退役...
- 執教不到半年,國足前主帥卡納瓦羅被意乙球隊炒魷魚,下課前他還請韋世豪吃了頓飯
韋世豪受邀來到了卡納瓦羅家做客 圖據韋世豪微博值得一提的是,在卡帥的榮譽櫃中,還擺放著執教廣州隊時的的不少紀念品,有俱樂部給他的聘書,還有很多照片,可以看出卡帥對那段執教經歷十分懷念...