switch语句的case和default有顺序吗?
首先让我们先来了解下switch语句的执行逻辑吧!
1.执行逻辑
我们可以结合下图来理解switch语句的执行逻辑。switch的执行逻辑,其实就相当于是把多种情况分别列出,根据我们输入的值来判断符合哪种情况。符合哪个情况,就进入到对应的分支里面去执行,整体的执行逻辑就是这样的,如下图所示:
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语句中的重点哦,大家一定要多多练习,多多总结!