您現在的位置是:首頁 > 人文
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的結合匹配主要使用的形式是全匹配。
推薦文章
- 離婚:只因為不懂愛
圖片來自網路截圖新時代下的婚姻已經很少有父母包辦的,近期無意間看到一檔相親節目一女孩說自己的父母十多年無溝通,後來她的媽媽痛哭流涕的請求孩子原諒,這裡我要說的是婚姻雙方的角色如何扮演源於原生家庭...
- 終極鬥羅:摧毀隕星級偵察艦,藍軒宇排名揭曉,戰艦圍攻星戰班
星戰班的畢業考還在繼續,藍軒宇帶隊迎戰隕星級偵察艦,雖然被星雷包圍,但藍軒宇利用這些星雷,最終摧毀了隕星級戰艦...
- 上百盒布洛芬被扔垃圾桶引關注!布洛芬過期了還能吃嗎?
此前,國家藥監局在答覆網友“過期藥品如何處理”時曾表示,如果家庭過期藥品沒有被分類集中收集,可以破壞藥品包裝盒後,隨生活垃圾分散丟棄、分類回收,相對風險較小...