switch简单用法及性能

 switch 用法

  1.  switch适用于byte,int, short, char(Java1.6),Java1.7增加string

  2.  如果case语句中少写了break,编译不会报错,但是会一直执行之后所有case条件下的语句而不再判断,直到default语句

  3.  如果没有满足条件的case语句,就执行default内容。default语句不是必须,可不写

/**
     * 若当前匹配成功的case不存在break,则从当前case开始,依次返回后续case的返回值,直到遇到        
        break,跳出判断
     * 输出“char a char c”
     */
    private static void CharTest() {
        char ch = 'a';
        switch (ch) {
            case 'b' :
                System.out.println("char b");
                break;
            case 'a' :
                System.out.println("char a");
            case 'c' :
                System.out.println("char c");
                break;
            default:
                System.out.println("default");
        }
    }


    /**
     * 若未找到,则执行默认的case。
     * 输出“default执行”
     */
    private static void IntTest() {
        int a = 10;
        switch (a) {
            case 2 :
                System.out.println(".......2");
                break;
            case 12 :
                System.out.println(".......10");
                break;
            default:
                    System.out.println("default执行");
        }
    }


    /**
     * 判断String类型
     * 输出“my name is lihua”
     */
    private static void StringTest() {
        String str = "lh";
        switch (str) {
            case "lh" :
                System.out.println("my name is lihua");
                break;
            case "ln" :
                System.out.println("my name is lini");
                break;
            default:
                System.out.println("finally it's me");
        }
    }

switch case与if else的区别:

  1. switch case会生成一个跳转表来指示实际的case分支的地址,类似空间换时间;
  2. if...else却需要遍历条件分支直到命中条件;

switch case的优缺点:

  1. 当分支较多时,用switch的效率是很高的。因为switch是确定了选择值之后直接跳转到那个特定的分支.
  2. switch...case占用较多的代码空间,因为它要生成跳表,特别是当case常量分布范围很大但实际有效值又比较少的情况,switch...case的空间利用率将变得很低。
  3. switch...case只能处理case为常量的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值