千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > switch語(yǔ)句的case和default有順序嗎?

switch語(yǔ)句的case和default有順序嗎?

來(lái)源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2023-03-21 17:16:00 1679390160

  首先讓我們先來(lái)了解下switch語(yǔ)句的執(zhí)行邏輯吧!

  1.執(zhí)行邏輯

  我們可以結(jié)合下圖來(lái)理解switch語(yǔ)句的執(zhí)行邏輯。switch的執(zhí)行邏輯,其實(shí)就相當(dāng)于是把多種情況分別列出,根據(jù)我們輸入的值來(lái)判斷符合哪種情況。符合哪個(gè)情況,就進(jìn)入到對(duì)應(yīng)的分支里面去執(zhí)行,整體的執(zhí)行邏輯就是這樣的,如下圖所示:

1

  2.基本語(yǔ)法

  在使用switch之前,首先我們得記住它的基本語(yǔ)法結(jié)構(gòu),其基本語(yǔ)法格式如下:

  switch(值){

  case 值1:

  //switch中的值與值1相等時(shí)執(zhí)行的代碼

  break; //可選

  case 值2:

  //switch中的值與值2相等時(shí)執(zhí)行的代碼

  break; //可選

  case 值3:

  //switch中的值與值3相等時(shí)執(zhí)行的代碼

  break; //可選

  case 值4:

  //switch中的值與值4相等時(shí)執(zhí)行的代碼

  break; //可選

  default:

  //switch中的值與以上所有值都不相等時(shí)執(zhí)行的代碼

  break; //可選

  }

  3.switch語(yǔ)句中的case和default

  經(jīng)常碰到有朋友問(wèn)這樣的問(wèn)題:switch語(yǔ)句的case和default有順序嗎?接下來(lái)就帶大家解決下這個(gè)問(wèn)題:

  在java中,switch語(yǔ)句中的case和default是由順序的,但是這個(gè)順序并不會(huì)影響程序執(zhí)行。

  在switch語(yǔ)句中,當(dāng)表達(dá)式的值和某個(gè)case的值相等的時(shí)候,該case語(yǔ)句及其后面的語(yǔ)句都會(huì)被執(zhí)行,只到遇到break語(yǔ)句或者switch語(yǔ)句的末尾為止,如果所有的case語(yǔ)句都不匹配,那么就會(huì)執(zhí)行default語(yǔ)句了。

  案例分析:

  int day = 4;

  switch (day) {

  case 1:

  System.out.println("Monday");

  break;

  case 2:

  System.out.println("Tuesday");

  break;

  case 3:

  System.out.println("Wednesday");

  break;

  case 4:

  System.out.println("Thursday");

  break;

  case 5:

  System.out.println("Friday");

  break;

  default:

  System.out.println("Weekend");

  break;

  }

  在這個(gè)例子中,當(dāng)變量 day 的值為 4 時(shí),程序會(huì)輸出 "Thursday",因?yàn)樗ヅ淞说谒膫€(gè) case 語(yǔ)句。

  注意,如果沒(méi)有 break 語(yǔ)句,程序會(huì)繼續(xù)執(zhí)行下一個(gè) case 語(yǔ)句或者 default 語(yǔ)句,直到遇到 break 為止。這種情況下,多個(gè) case 語(yǔ)句可以共享同一個(gè)代碼塊,如下面的例子所示:

  int day = 4;

  switch (day) {

  case 1:

  case 2:

  case 3:

  case 4:

  case 5:

  System.out.println("Weekday");

  break;

  default:

  System.out.println("Weekend");

  break;

  }

  在這個(gè)例子中,如果變量 day 的值為 1、2、3、4 或 5,程序都會(huì)輸出 "Weekday"。

  4.switch分支語(yǔ)句的使用

  Switch分支語(yǔ)句是一種常見(jiàn)的控制語(yǔ)句,用于根據(jù)變量的值選擇執(zhí)行不同的代碼塊。下面是一個(gè)案例,我們來(lái)演示下如何使用Switch分支語(yǔ)句:

  public class SwitchExample {

  public static void main(String[] args) {

  int day = 4;

  String dayString;

  // 使用Switch語(yǔ)句判斷星期幾

  switch (day) {

  case 1:

  dayString = "星期一";

  break;

  case 2:

  dayString = "星期二";

  break;

  case 3:

  dayString = "星期三";

  break;

  case 4:

  dayString = "星期四";

  break;

  case 5:

  dayString = "星期五";

  break;

  case 6:

  dayString = "星期六";

  break;

  case 7:

  dayString = "星期日";

  break;

  default:

  dayString = "無(wú)效的天數(shù)";

  break;

  }

  System.out.println(dayString);

  }

  }

  ●在這個(gè)例子中,我們定義了一個(gè)整數(shù)變量 day,然后使用Switch語(yǔ)句根據(jù)該變量的值來(lái)選擇執(zhí)行不同的代碼塊。當(dāng)day的值為1時(shí),Switch語(yǔ)句執(zhí)行第一個(gè)case分支;當(dāng)day的值為2時(shí),Switch語(yǔ)句執(zhí)行第二個(gè)case分支,以此類推。如果day的值與任何一個(gè)case分支都不匹配,Switch語(yǔ)句將執(zhí)行default分支。在這個(gè)例子中,如果day的值不是1-7之間的整數(shù),Switch語(yǔ)句將執(zhí)行default分支,并將 dayString 設(shè)置為 "無(wú)效的天數(shù)"。

  ●最后,我們通過(guò) System.out.println() 方法打印出 dayString 的值,以便在控制臺(tái)上顯示星期幾。

  5.Java中switch條件語(yǔ)句的用法

  在 switch 語(yǔ)句中,如果在一個(gè) case 中缺少 break,則代碼將會(huì)繼續(xù)執(zhí)行下一個(gè) case 中的語(yǔ)句,直到遇到 break 語(yǔ)句或者 switch 語(yǔ)句結(jié)束為止。

  例如下面這種情況

  int day = 3;

  switch (day) {

  case 1:

  System.out.println("Monday");

  case 2:

  System.out.println("Tuesday");

  case 3:

  System.out.println("Wednesday");

  case 4:

  System.out.println("Thursday");

  case 5:

  System.out.println("Friday");

  case 6:

  System.out.println("Saturday");

  case 7:

  System.out.println("Sunday");

  }

  在這個(gè)例子中,day的值為3,因此switch語(yǔ)句會(huì)執(zhí)行case 3語(yǔ)句塊中的代碼,即打印出"Wednesday"。然而,由于case 3語(yǔ)句塊沒(méi)有包含break語(yǔ)句,控制流程將繼續(xù)執(zhí)行下一個(gè)case語(yǔ)句塊,即case 4語(yǔ)句塊,打印出"Thursday"。隨后,控制流程將繼續(xù)執(zhí)行下一個(gè)case語(yǔ)句塊,直到遇到break語(yǔ)句或者switch語(yǔ)句結(jié)束。

  因此,如果在switch語(yǔ)句中的case語(yǔ)句塊中忘記添加break語(yǔ)句,會(huì)導(dǎo)致意想不到的結(jié)果。這種錯(cuò)誤稱為“落入”錯(cuò)誤(fall-through error)。為了避免這種錯(cuò)誤,建議在每個(gè)case語(yǔ)句塊的末尾添加break語(yǔ)句。

  以上幾點(diǎn)都是switch語(yǔ)句中的重點(diǎn)哦,大家一定要多多練習(xí),多多總結(jié)!

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截???

在Python中,字符串是一種非常常見(jiàn)的數(shù)據(jù)類型,它可以用來(lái)表示文本、數(shù)字、符號(hào)等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對(duì)字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R?jiàn)的一種社交方式。Python語(yǔ)言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計(jì)算機(jī)編程中,循環(huán)語(yǔ)句是非常重要的一部分。而while語(yǔ)句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個(gè)集合?

在Python中,集合是一種無(wú)序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲(chǔ)一組元素。創(chuàng)建一個(gè)集合非常簡(jiǎn)單,只需要使用大括號(hào){}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見(jiàn)的命令了。使用cat命令會(huì)打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15