Java中的Switch语句
switch 语句是一个多路分支语句。它提供了一种简单的方法,可以根据表达式的值将执行分派到代码的不同部分。基本上,表达式可以是 byte、short、char 和 int 原始数据类型。从 JDK7 开始,它还适用于枚举类型(Java 中的Enums)、String类和Wrapper类。
Switch-case 的语法:
// switch statement
switch(expression)
{
// case statements
// values must be of same type of expression
case value1 :
// Statements
break; // break is optional
case value2 :
// Statements
break; // break is optional
// We can have any number of case statements
// below is default statement, used when none of the cases is true.
// No break is needed in the default case.
default :
// Statements
}
Switch-case流程图:
switch 语句的一些重要规则:
- 不允许出现重复的大小写值。
- case 的值必须与 switch 中的变量具有相同的数据类型。
- case 的值必须是常量或文字。不允许使用变量。
- break 语句在 switch 中用于终止语句序列。
- break 语句是可选的。如果省略,执行将继续到下一个案例。
- default 语句是可选的,可以出现在 switch 块内的任何位置。如果不在最后,则必须在 default 语句之后保留一个 break 语句,以省略下一个 case 语句的执行。
示例:
考虑以下 java 程序,它声明了一个名为 day 的 int,其值表示 day(1-7)。该代码使用 switch 语句根据一天的值显示一天的名称。
// Java program to demonstrate switch case
// with primitive(int) data type
public class Test {
public static void main(String[] args)
{
int day = 5;
String dayString;
// switch statement with int data type
switch (day) {
case 1:
dayString = "Monday";
break;
case 2:
dayString = "Tuesday";
break;
case 3:
dayString = "Wednesday";
break;
case 4:
dayString = "Thursday";
break;
case 5:
dayString = "Friday";
break;
case 6:
dayString = "Saturday";
break;
case 7:
dayString = "Sunday";
break;
default:
dayString = "Invalid day";
}
System.out.println(dayString);
}
}
输出:
Friday
省略break语句
因为 break 语句是可选的。如果我们省略中断,执行将继续到下一个案例。有时需要在多个 case 之间没有 break 语句。例如,考虑上述程序的更新版本,它还显示一天是工作日还是周末。
// Java program to demonstrate switch case
// with multiple cases without break statements
public class Test {
public static void main(String[] args)
{
int day = 2;
String dayType;
String dayString;
switch (day) {
case 1:
dayString = "Monday";
break;
case 2:
dayString = "Tuesday";
break;
case 3:
dayString = "Wednesday";
break;
case 4:
dayString = "Thursday";
break;
case 5:
dayString = "Friday";
break;
case 6:
dayString = "Saturday";
break;
case 7:
dayString = "Sunday";
break;
default:
dayString = "Invalid day";
}
switch (day) {
// multiple cases without break statements
case 1:
case 2:
case 3:
case 4:
case 5:
dayType = "Weekday";
break;
case 6:
case 7:
dayType = "Weekend";
break;
default:
dayType = "Invalid daytype";
}
System.out.println(dayString + " is a " + dayType);
}
}
输出:
Tuesday is a Weekday
嵌套的 Switch Case 语句
我们可以使用 switch 作为外部 switch 语句序列的一部分。这称为嵌套开关。由于 switch 语句定义了自己的块,因此内部 switch 中的 case 常量和外部 switch 中的 case 常量之间不会发生冲突。例如:
// Java program to demonstrate
// nested switch case statement
public class Test {
public static void main(String[] args)
{
String Branch = "CSE";
int year = 2;
switch (year) {
case 1:
System.out.println("elective courses : Advance english, Algebra");
break;
case 2:
switch (Branch) // nested switch
{
case "CSE":
case "CCE":
System.out.println("elective courses : Machine Learning, Big Data");
break;
case "ECE":
System.out.println("elective courses : Antenna Engineering");
break;
default:
System.out.println("Elective courses : Optimization");
}
}
}
}
输出:
elective courses : Machine Learning, Big Data
还没有评论,来说两句吧...