千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > switch语句的case和default有顺序吗?

switch语句的case和default有顺序吗?

来源:千锋教育
发布人:qyf
时间: 2023-03-21 17:16:00 1679390160

  首先让我们先来了解下switch语句的执行逻辑吧!

  1.执行逻辑

  我们可以结合下图来理解switch语句的执行逻辑。switch的执行逻辑,其实就相当于是把多种情况分别列出,根据我们输入的值来判断符合哪种情况。符合哪个情况,就进入到对应的分支里面去执行,整体的执行逻辑就是这样的,如下图所示:

1

  2.基本语法

  在使用switch之前,首先我们得记住它的基本语法结构,其基本语法格式如下:

  switch(值){

  case 值1:

  //switch中的值与值1相等时执行的代码

  break; //可选

  case 值2:

  //switch中的值与值2相等时执行的代码

  break; //可选

  case 值3:

  //switch中的值与值3相等时执行的代码

  break; //可选

  case 值4:

  //switch中的值与值4相等时执行的代码

  break; //可选

  default:

  //switch中的值与以上所有值都不相等时执行的代码

  break; //可选

  }

  3.switch语句中的case和default

  经常碰到有朋友问这样的问题:switch语句的case和default有顺序吗?接下来就带大家解决下这个问题:

  在java中,switch语句中的case和default是由顺序的,但是这个顺序并不会影响程序执行。

  在switch语句中,当表达式的值和某个case的值相等的时候,该case语句及其后面的语句都会被执行,只到遇到break语句或者switch语句的末尾为止,如果所有的case语句都不匹配,那么就会执行default语句了。

  案例分析:

  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;

  }

  在这个例子中,当变量 day 的值为 4 时,程序会输出 "Thursday",因为它匹配了第四个 case 语句。

  注意,如果没有 break 语句,程序会继续执行下一个 case 语句或者 default 语句,直到遇到 break 为止。这种情况下,多个 case 语句可以共享同一个代码块,如下面的例子所示:

  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;

  }

  在这个例子中,如果变量 day 的值为 1、2、3、4 或 5,程序都会输出 "Weekday"。

  4.switch分支语句的使用

  Switch分支语句是一种常见的控制语句,用于根据变量的值选择执行不同的代码块。下面是一个案例,我们来演示下如何使用Switch分支语句:

  public class SwitchExample {

  public static void main(String[] args) {

  int day = 4;

  String dayString;

  // 使用Switch语句判断星期几

  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 = "无效的天数";

  break;

  }

  System.out.println(dayString);

  }

  }

  ●在这个例子中,我们定义了一个整数变量 day,然后使用Switch语句根据该变量的值来选择执行不同的代码块。当day的值为1时,Switch语句执行第一个case分支;当day的值为2时,Switch语句执行第二个case分支,以此类推。如果day的值与任何一个case分支都不匹配,Switch语句将执行default分支。在这个例子中,如果day的值不是1-7之间的整数,Switch语句将执行default分支,并将 dayString 设置为 "无效的天数"。

  ●最后,我们通过 System.out.println() 方法打印出 dayString 的值,以便在控制台上显示星期几。

  5.Java中switch条件语句的用法

  在 switch 语句中,如果在一个 case 中缺少 break,则代码将会继续执行下一个 case 中的语句,直到遇到 break 语句或者 switch 语句结束为止。

  例如下面这种情况

  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");

  }

  在这个例子中,day的值为3,因此switch语句会执行case 3语句块中的代码,即打印出"Wednesday"。然而,由于case 3语句块没有包含break语句,控制流程将继续执行下一个case语句块,即case 4语句块,打印出"Thursday"。随后,控制流程将继续执行下一个case语句块,直到遇到break语句或者switch语句结束。

  因此,如果在switch语句中的case语句块中忘记添加break语句,会导致意想不到的结果。这种错误称为“落入”错误(fall-through error)。为了避免这种错误,建议在每个case语句块的末尾添加break语句。

  以上几点都是switch语句中的重点哦,大家一定要多多练习,多多总结!

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT