1.1.1.1 switch语句

switch语句可以将多选一的情况简化,使程序简洁易懂。注意break的使用。

要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用ifelse不断地判断外,还可以使用另一种更方便的方式,即多重选择——switch语句。使用嵌套ifelse语句最常发生的状况就是容易将ifelse配对混淆,从而造成阅读及运行上的错误。使用switch语句则可以避免这种错误的发生。switch语句的格式如下:

switch(表达式){

case 选择值1      语句主体1

break

case 选择值1      语句主体1

break

……

case 选择值n      语句主体1

break

default     语句主体;

switch语句中选择值只能是字符或常量。

switch语句的执行流程:

(1)switch语句先计算括号中的表达式的结果,结果是数字、字符或是枚举。

(2)根据表达式的值检测是否符合case后面的选择值,若是所有case的选择值皆不符合,则执行default所包含的语句,执行完毕即离开switch语句。

(3)如果某个case的选择值符合表达式的结果,就会执行该case所包含的语句,一直遇到break语句后才离开switch语句。

(4)若是没有在case语句结尾处加上break语句,则会一直执行到switch语句的尾端才离开switch语句。break是跳出语句。

(5)若是没有定义default该执行的语句,则什么也不会执行,直接离开switch语句。如图:


验证switch的作用:

class SwitchDemo01{

      public static void main(String[] args) {

        int x = 3;

        int y = 6;

        char oper = '+';

        switch(oper){

           case '+': {

              System.out.println("x+y = " + (x+y));

              break;

           }

           case '-': {

              System.out.println("x-y = " + (x-y));

              break;

           }

           case '*': {

              System.out.println("x*y = " + (x*y));

              break;

           }

           case '/': {

              System.out.println("x/y = " + (x/y));

              break;

           }

           case '%': {

              System.out.println("x%y = " + (x%y));

              break;

           }

           default: {

              System.out.println("未知操作!");

              break;

           }

        }

      }

}

运行结果:

x+y = 9

如果不使用break

class SwitchDemo02{

      public static void main(String[] args) {

        int x = 3;

        int y = 6;

        char oper = '+';

        switch(oper){

           case '+': {

              System.out.println("x+y = " + (x+y));

           }

           case '-': {

              System.out.println("x-y = " + (x-y));

           }

           case '*': {

              System.out.println("x*y = " + (x*y));

           }

           case '/': {

              System.out.println("x/y = " + (x/y));

           }

           case '%': {

              System.out.println("x%y = " + (x%y));

           }

           default: {

              System.out.println("未知操作!");

           }

        }

      }

}

运行结果:

x+y = 9

x-y = -3

x*y = 18

x/y = 0

x%y = 3

未知操作!

条件满足后还是继续执行。