zoukankan      html  css  js  c++  java
  • 【技术累积】【点】【java】【2】聊一聊似曾相识的switch语句

    闲聊

    有些东西并不能像爱因斯坦老先生说的那样,书上查的到就不用去记住...


    开始

    • java使用了C的所有流程控制语句;
    • java中同样有switch语句;
    • 大多数情况下,switch都可以用if替换;

    好,下面说容易忘掉的,和可能被忽视的一些东西:

    • 基本结构(tm我就是忘了怎么写基本结构的,谁让自己依赖ide太多,谁让ide敲switch只有个switch()出来)
    switch (表达式) {
    case 条件1:
        语句1;
        break;
    case 条件2:
        语句2;
        break;
    ...
    default:
        语句;
    }
    
    • 一般流程,switch对象,然后进入case,直到遇到break结束——所以,1、default是默认case;2、一般每个case都写break,不然你可以试试,当然,特殊情况,多个case公用一个case;
    • 注意:default不一定写在最后,所以不一定一定不需要break; 保险起见,或者说编程风格来说,请给每一个case加上break;
    ·
            switch (a){
                default:
                    shit.getNum();
                case "":
                    break;
            }
    
    • 注意定义格式是这样的
    switch(integral-selector) {
        case integral-value : statement: break;
        case integral-value : statement: break;
        ...
        default:statement;
    }
    

    其中integral-selector是指整数选择因子,也就是说是一个定值,比如int,char这种,特殊的有枚举(所以不能直接用的,可以用这个变通),但是复杂类、float这种就不行,比如

    ·
            String a = "a";
            switch (a) {
                case "a":
                    break;
            }
    
            Shit shit = new Shit();
    //        switch (shit) {
    //
    //        }
    
            switch (shit.num){
    
            }
    
            switch (shit.getNum()){
    
            }
            
            private class Shit {
            int num = 0;
    
            int getNum(){
                return this.num;
            }
        }
    

    integral-value是整数值,也就是要确定的值,所以类的方法这种是不行的(其实这里我还有点疑问。。)

    //        switch (a){
    //            case shit.getNum():
    //                break;
    //        }
    

    结束

    麻雀虽小,五脏俱全。

    参考博客:Java switch 详解

  • 相关阅读:
    使用sudo crontab修改Linux系统时间
    Redis缓存雪崩和穿透的解决方法
    设计模式之委托模式
    设计模式之模板模式
    并发编程面试题
    AQS之共享锁实现原理
    AQS之独占锁实现原理
    CentOS 7.1 Bridge启用STP报错"Master connection not found or invalid"
    nginx反向代理docker registry报”blob upload unknown"解决办法
    [转]Linux df 命令不更新磁盘数据空间使用情况的解决办法
  • 原文地址:https://www.cnblogs.com/andy1202go/p/9296995.html
Copyright © 2011-2022 走看看