switch选择结构

来源:互联网 发布:扶摇直上九万里的网络 编辑:程序博客网 时间:2024/05/16 17:30

switch选择结构的应用:
当需要多重分支并且条件判断是 等值判断 的情况下,使用switch选择结构代替多重if选择结构会简单些,在使用switch选择结构是不要忘记在每个case块的最后写上break。
switch选择结构使用时注意事项:

  • switch括号里的表达式
    -在JDK1.7后,switch语句小括号里可以是intshortbytechar枚举String类型表达式。
  • case关键字
    -case后必须是一个常量,数据类型与switch后表达式的值相同,通常是一个固定的值。case块可以有多个,顺序可以改变,但是每个case后的常量的值必须不同。
    注意:常量值的类型应与switch括号中的“表达式”的值类型一致。
  • break关键字
    -跳出当前结构,如果case代码块中没有break,代码则会依次向下执行,直到遇到break跳出。

    当每个代码块都有break关键字时,正常的顺序是通过case找到对应的执行代码块,然后跳出当前结构。
        int num = 1;        String words;        switch(num){            case 1:                words = "num=1";                break;            case 2:                words = "num=2";                break;            case 3:                words = "num=3";                break;            default:                words = "num>3";        }        //此时words的值为num=1;
    如果case代码块中没有break,代码则会依次向下执行,直到遇到break跳出
        int num = 1;        String words = "";        switch(num){            case 1:                words += "执行case 1的代码块";            case 2:                words += "执行case 2的代码块";                break;            case 3:                words += "执行case 3的代码块";                break;            default:                words += "执行default的代码块";        }        //此时words的值为执行case 1的代码块执行case 2的代码块;
  • default关键字
    -表示默认值,即其他情况都不满足时,默认执行此代码块。
    -default后要紧跟冒号。
        int num = 5;        String words;        switch(num){            case 1:                words = "num=1";                break;            case 2:                words = "num=2";                break;            case 3:                words = "num=3";                break;            default:                words = "num>3";        }        //此时words的值为num>3;
    -default块和case块的先后顺序可以变动,不会影响程序执行结果。通常,default块放在末尾,也可以省略。
        int num = 2;        String words;        switch(num){            default:                words = "num>3";                break;            case 1:                words = "num=1";                break;            case 2:                words = "num=2";                break;            case 3:                words = "num=3";                break;        }        //此时words的值为num=2;
        如果此时的default没有break关键字跳出,依然不影响程序执行,但如果最终没有符合情况的值,调用默认值时,因为没有break关键字跳出,会出现依次向下执行的情况
        int num = 2;//如果int num = 5;        String words;        switch(num){            default:                words = "num>3";            case 1:                words = "num=1";                break;            case 2:                words = "num=2";                break;            case 3:                words = "num=3";                break;        }        //此时words的值为num=2;        //如果num = 5,words的值为num=1;