Java中的Switch语句

switch语句是一个多路分支语句。简单地说,Java switch语句在多个条件下执行一条语句。它就像一个 否则如果 阶梯式陈述。它提供了一种简单的方法,可以根据表达式的值将执行分派到代码的不同部分。基本上,表达式可以是byte、short、char和int基元数据类型。从JDK7开始,它也适用于枚举类型( 枚举类型 在java中 一串 上课,还有 包装纸 上课。

null

switch语句的一些重要规则:

  • 不允许重复的大小写值。
  • 案例的值必须与开关中的变量具有相同的数据类型。
  • 大小写的值必须是常量或文字。不允许使用变量。
  • break语句在开关内部用于终止语句序列。
  • break语句是可选的。如果省略,执行将继续到下一个案例。
  • 默认语句是可选的,可以出现在开关块内的任何位置。在这种情况下,如果它不在末尾,那么必须在默认语句之后保留一个break语句,以省略下一个case语句的执行。

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-statement-flowchart-in-java

例如: 考虑下面的java程序,它声明一个int命名天,其值代表一天(1-7)。该代码使用switch语句根据日期的值显示日期的名称。

JAVA

// 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语句

As break语句是可选的。如果我们省略中断,执行将继续到下一个案件。有时,在多个案例之间没有中断语句是可取的。例如,考虑上面的程序的更新版本,它也显示一天是一个工作日还是一个周末。

JAVA

// 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语句定义了自己的块,所以内部开关中的case常量和外部开关中的case常量之间不会发生冲突。例如:

JAVA

// 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

本文由 高拉夫·米格拉尼 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享