Java switch-case语句,当我们有多个选项(或选项)时,会使用 Switch case语句,我们可能需要为每个选项执行不同的任务。
Switch case语句的语法如下所示:
switch (variable or an integer expression)
{
case constant:
//Java code
;
case constant:
//Java code
;
default:
//Java code
;
}
Switch Case语句主要用于break语句,即使它是可选的。我们将首先看到一个没有break语句的例子,然后我们将讨论switch case和break。
一个简单的switch case
public class SwitchCaseExample1 {
public static void main(String args[]){
int num=2;
switch(num+2)
{
case 1:
System.out.println("Case1: Value is: "+num);
case 2:
System.out.println("Case2: Value is: "+num);
case 3:
System.out.println("Case3: Value is: "+num);
default:
System.out.println("Default: Value is: "+num);
}
}
}
输出:
Default: Value is: 2
说明:在switch中我给出了一个表达式,你也可以给变量。我给了num + 2,其中num值是 2,并且在添加之后表达式得到 4.由于没有用值 4 定义的情况,所以执行了默认情况。这就是为什么我们应该在switch case中使用default,这样如果没有匹配条件,则执行默认块。
switch case流程图
首先,求值在switch括号中提供的变量,值或表达式,然后根据结果,执行与结果匹配的相应case块。

switch-case中的break语句
在 switch case 中,break 语句是可选的,但几乎每次处理 switch case 时都会使用它。在我们讨论 break 语句之前,让我们看看下面的例子,我没有使用 break 语句:
public class SwitchCaseExample2 {
public static void main(String args[]){
int i=2;
switch(i)
{
case 1:
System.out.println("Case1 ");
case 2:
System.out.println("Case2 ");
case 3:
System.out.println("Case3 ");
case 4:
System.out.println("Case4 ");
default:
System.out.println("Default ");
}
}
}
输出:
Case2
Case3
Case4
Default
在上面的程序中,我们已经将整数值 2 传递给了
switch,所以控制切换到了case 2,但是在case 2之后我们没有使用break语句导致流程传递到后续case直到结束。这个问题的解决方案是break语句
当您希望程序流从switch主体中出来时,使用Break语句。每当在switch主体中遇到break语句时,执行流程将直接从switch中出来,忽略其余的情况。
让我们采用相同的例子,但这次使用break语句。
break语句的示例
public class SwitchCaseExample2 {
public static void main(String args[]){
int i=2;
switch(i)
{
case 1:
System.out.println("Case1 ");
break;
case 2:
System.out.println("Case2 ");
break;
case 3:
System.out.println("Case3 ");
break;
case 4:
System.out.println("Case4 ");
break;
default:
System.out.println("Default ");
}
}
}
输出:
Case2
现在您可以看到只有case 2已被执行,其余case被忽略。
为什么我默认后不使用break语句?
控制流本身会在默认情况下从switch中出来,所以我没有使用它,但是如果您仍然想在默认情况下使用break,那么您可以使用它,这样做没有坏处。
有关switch-case的几点意见
1)case并不总是需要顺序 1,2,3 等。它可以在case关键字后面包含任何整数值。此外,case不需要始终按升序排列,您可以根据要求以任何顺序指定它们。
2)您也可以在switch case中使用字符。例如:
public class SwitchCaseExample2 {
public static void main(String args[]){
char ch='b';
switch(ch)
{
case 'd':
System.out.println("Case1 ");
break;
case 'b':
System.out.println("Case2 ");
break;
case 'x':
System.out.println("Case3 ");
break;
case 'y':
System.out.println("Case4 ");
break;
default:
System.out.println("Default ");
}
}
}
3)switch内部给出的表达式应该是一个常量值,否则它将无效。
例如:
switch的有效表达式:
switch(1+2+23)
switch(1*2+3%4)
无效的switch表达式:
switch(ab+cd)
switch(a+b+c)
4)允许嵌套switch语句,这意味着你可以在另一个switch内部使用switch语句。但是应该避免使用嵌套的switch语句,因为它会使程序更复杂,更不易读。
极客教程