Java教程08—Java中的switch语句

当我们有多个选项(或条件)时,使用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是可选的。
我们先用一个没有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,这样如果没有匹配条件的case,则执行default的内容。


Switch流程图

首先,检查在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

现在您可以看到只有case2被执行,其余case被忽略。

为什么我default后不使用break语句?
default后控制流程本身就会从switch中出来,所以我没有使用它。
但是如果你仍然希望在default情况下使用break,那么你可以使用它,这样做也没有任何害处。


有关Switch Case的几个问题

  • 1)case并不总是需要规定为1,2,3等。它可以在case关键字后面包含任何整数值。
    此外,case不需要始终按升序排列,您可以根据要求以任何顺序指定它们。

  • 2) 也可以在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语句,因为它会使程序更复杂,更不易读。

原文地址:
https://beginnersbook.com/2017/08/java-switch-case/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值