switch多分支语句

在编程中一个常见的问题就是检测一个变量是否符合某个条件,如果不匹配,再用另一个值来检测它,依此类推。当然,这种问题使用if条件语句可以完成。

  使用if语句检测变量是否复合某个条件,关键代码如下:

String grade = "A";

if (grade == "A") {

      System.out.println("真棒");

}

if (grade == "B") {

      System.out.println("做的不错");

}

这个程序显得比较笨重,程序员需要测试不同的值来给出输出语句。在Java中,你可以用switch语句将动作组织起来,就能以一个较简单明了的方式来实现“多选一”的选择。

语法:

switch(表达式){

      case 常量1:

            语句1

            [break;]

      case 常量2:

            语句2

            [break;]

     

      case 常量n:

            语句n

            [break;]

      default:

            默认处理语句;

            [break;]

}

表达式:这是必要的参数,它的结果用于判断执行的case子句。

case 常量:必要的参数,它是分支的入口,用于执行特定于常量的操作。

语句:可以是多条语句,但不是复合语句,因为不需要使用花括号“{ }”,它是分支的业务处理代码。

break:可选参数,一般放在case分支语句的最后,在完成操作后,用于跳出switch语句,继续执行程序的其它流程。

default:这是可选参数,它是switch语句的默认分支入口,如果表达式的值和所有case子句的常量都不匹配,那么将执行default分支下的语句。

注意同一个switch语句case的常量值必须互不相同。

switch语句的流程如图1所示。

 

                  1  switch语句的执行过程

  在项目中创建类GetSwitch,在主方法中应用switch语句将周一至周三的英文单词打印出来。

public class GetSwitch {                                                //创建类

      public static void main(String args[]) {                      //主方法

                  int week = 2;                                               //定义int型变量week

                  switch (week) {                                           //指定switch语句的表达式为变量week

                  case 1:                                                        //定义case语句中的常量为“1”

                        System.out.println("Monday");                 //输出信息

                        break;

                  case 2:                                                        //定义case语句中的常量为“2”

                        System.out.println("Tuesday");

                        break;

                  case 3:                                                        //定义case语句中的常量为“3”

                        System.out.println("Wednesday");

                        break;

                  default:                                                       //default语句

                        System.out.println("Sorry,I don't Know");

                  }

            }

      }

运行结果如图2所示:

 

        2  运行结果

注意switch语句中case语句后的常量表达式的值可以为整数但绝不可以是实数,例如下面的代码就是不合法的:

case 1.1;

常量表达式的值可以是字符,但一定不可以是字符串。例如下面的代码也是非法的:

case "ok";