java  switch多分支语句
虽然,通过ifelse语句的嵌套,可以实现程序的多层次选择,但在过多分支的情况下,使用ifelse嵌套可能有点勉强。即便在较少的分支中,使用If  else嵌套的方法实现分支选择,不但会使代码的可读性不高,而执行效果也偏低。
在这种情况下,使用switch语句可以解决上述的问题。Switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择执行的语句。Switch语句的一般语法形式如下所示:
Switch(表达式)
{
Case value1:
statement1;
break;
Case value2:
    statement2;
    break;
.
.
Default:
    Default statement3
    Break;
}
Switch语句遵守以下规则:
Switch表达式必须是字符、字节、短整型和整型的数值,而且必须包含在圆括号内。
Value1、value2必须与switch表达式有相同的数据类型。当case语句中的值与switch表达式中的值匹配时,执行case语句中的结果语句。case语句按照次序顺序执行。
关键字break为可选项,它应该用在每个case语句的末尾,以终止switch语句后面部分的执行。如果没有使用break语句,将继续执行下面的case语句。
Default项为可选项,当指定的情况都不能与switch表达式匹配时,使用default项执行相应的动作。
各个case语句(包括default语句)的次序无关紧要,但是遵循各个case语句的逻辑次序并将default语句放在最后是良好的编程风格。
下面通过创建实例,说明switch语句的使用方法,代码如下所示。
import java.util.Scanner;
public class Toswitch
{
    public static void main(String[] args)
    {
        System.out.print("计算当前月的天数,请输入1-12的整型数字:\n");
        Scanner input=new Scanner(System.in);    //声明输入变量
        int Int();              //输入整形数字
        switch(month)
        {
        case 1:
            System.out.println(month+"月共31天");
            break;
        case 2:
            System.out.println(month+"月共28天");
            break;
        case 3:
            System.out.println(month+"月共31天");
            break;
        case 4:
            System.out.println(month+"月共30天");
            break;
        case 5:
            System.out.println(month+"月共31天");
            break;
        case 6:
            System.out.println(month+"月共30天");
            break;
        case 7:
            System.out.println(month+"月共31天");
            break;
        case 8:
            System.out.println(month+"月共31天");
            break;
        case 9:
            System.out.println(month+"月共30天");
            break;
        case 10:
            System.out.println(month+"月共31天");
            break;
        case 11:
            System.out.println(month+"月共30天");
switch语句表示范围
            break;
        case 12:
            System.out.println(month+"月共31天")    ;
            break;
        default:
            System.out.println("你输入的不是1-12之间的整数");
            break;
        }
    }
}
上述代码中,声明一个存储当前月份的month变量并通过键盘进行赋值。然后,case语句按照次序顺序查与month匹配的常量,并执行相应的语句。当month等于12时,就没有与之匹配的case语句,则会执行default语句。
尽管多数应用程序的switch语句都会使用break语句,但它却是可选的。当case语句序列中遇到break语句时,它会使程序流程从整个switch语句中退出,从switch以外的下一个语句继续执行。然而,如果该break语句没有结束与case相关的语句序列,那么就会执行从匹配case语句开始往后的所有语句,直到又遇到一个语句(或到达switch末尾)为止。程序运行时,当输入数字10时,会输出“10月当31天”,结果如图4-7所示。
图4-7  switch输出结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。