zoukankan      html  css  js  c++  java
  • 19.java中选择判断语句(switch)

    switch语句

    格式:

    switch(表达式)
    {
        case 取值1:
            执行语句;
            breakcase 取值2:
            执行语句;
            break;
        …...
        default:
            执行语句;
            break;
    }

    switch语句特点:

        1,switch语句选择的类型只有四种:byte,short,int , char。

    2,case之间与default没有顺序。先判断所有的case,没有匹配的case执行

    default。

       3,switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。

       4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运

    行可以执行的语句,直到遇到break或者switch结尾结束。

       5,switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。

    案例:

    public static void main(String[] args) {
            int x = 3;
            switch (x) {
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            case 3:
                System.out.println("3");
                break;
            default:
                System.out.println("ok");
    break; } }

    case 就像选择题的答案之一。 break 就是如果该答案正确那么就可以跳出switch 了,意思就是说 已经找出了正确的答案了。那么这道题也就做完了。如果 case 没有匹配接着进行下一个case 匹配,直到匹配为止。 最后如果都没有匹配上,那么 switch 给提供了一个默认的答案,就是 default。

    注意: case后跟的是冒号:

    每个case中的执行语句一定要加break;

    练习:

    需求2:根据用于指定的月份,打印该月份所属的季节.

    一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.

    345 spring   678 sunmer 9 10 11  autumn  12 1 2 winter

    public static void main(String[] args) {
            int x = 3;
            switch (x) {
            case 3:
            case 4:
            case 5:
                System.out.println("spring");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("sunmer");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("autumn");
                break;
            case 12:
            case 0:
            case 1:
                System.out.println("winter");
            default:
                System.out.println("ok");
                break;
            }
        }

    练习:char 类型在switch 中的使用.

    public static void main(String[] args) {
           int x = 1, y = 2;
            char ch = '*';
            switch (ch) {
            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("不靠谱");        
    }
    }

    if switch 语句很像,具体什么场景下,应用哪个语句呢?

    如果判断的具体数值不多,而是符号byte,short int char 四种类型.

    虽然2个语句都可以使用,建议使用switch语句.因为效率稍高.

    其他情况:

    对区间判断,对结果为boolean 类型判断,使用if if的使用范围更广。

    if 除了能判断具体数值还能判断区间。switch 判断区间会很费劲的。要写好多case 对于运算结果是boolean型的 if 能判断 switch 是不能实现的。例如:根据学生考试成绩划分ABCD   A90-100  B80-89 C70-79 D60-69 E0-59。

    实际开发怎么选择呢?

        如果要对具体数值进行判断,并且数值不多,那么 就用switch 来完成。switch的case条件都是编译期整数常量,编译器可以做到表格跳转查询,查找速度快。

    但是switch 的局限性比较大必须是4种类型,并且值不多。一般都是使用if。 最后在jdk 7中对switch 进行了增强 还可以判断字符串。5.0 增加了对枚举的判断。

    author@nohert
  • 相关阅读:
    yii2 gii 命令行自动生成控制器和模型
    控制器中的方法命名规范
    Vue Property or method "" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based
    IDEA插件:GsonFormat
    Spring Boot : Access denied for user ''@'localhost' (using password: NO)
    Typora添加主题
    Git基础命令图解
    Java Joda-Time 处理时间工具类(JDK1.7以上)
    Java日期工具类(基于JDK1.7版本)
    Oracle SQL Developer 连接Oracle出现【 状态: 失败 -测试失败: ORA-01017: invalid username/password; logon denied】
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13574969.html
Copyright © 2011-2022 走看看