• 控制语句-选择结构(switch)


    switch选择语句:

      switch语句一般情况下与if语句的效果是等效的,但是switch语句的执行速率比嵌套的if语句要快,switch语句不分单选/双选/多选结构,它的结构取决于代码的逻辑。

     

     

      表达式:

    switch (条件表达式) {
            case 1:        //条件表达式执行完毕后,switch判断该值是否为1,如果是1,则执行case1 以下的代码
                代码块1;
                break;
            case 2:        //case1执行完毕后,会继续判断该值是否为2,如果是,同理执行case2以下的代码
                代码块2;
                break;
            default:       //如果条件表达式执行完毕,且该值即不等于1也不等于2,则执行该代码块
                代码块3;
                break;
            }

    (注意:为了防止case穿透问题,一般在使用switch语句时都必须加上break(跳出),否则case下余的代码也会被编译执行,就毫无意义)

    (注意:在JDK7之后的版本,switch语句还支持String类型,也就是说case后面的值不仅可以为数字,也可以为字符/字符串等。但是如果使用float与double会出现丢失精度的问题)

      case穿透的理解:

        当条件表达式计算完成后,程序开始执行,如果结果为1,则执行case1的代码块1。当代码块1执行完毕后,程序还会继续执行case2的代码块2,直至执行完所有case。

      一般写程序时只有需要多选择结构时才会经常用到switch语句,如果是单/双选择结构,一般用if语句即可。

      示例:

        ①使用switch语句实现一个简单的掷筛子小程序:

    package exercise;
    
    /**
     * @author 刘小将
     * switch语句:多选择结构
     * 一个简单的掷色子小程序
     */
    public class TestSwitch {
        
        public static void main(String[] args) {
            
            double b = Math.random();
            int e = 1+(int)(b*6);
            switch (e) {    //switch()中默认是int型,或者自动转为int的类型(byte,short,char),也可以是枚举。JDK7版本后还支持字符串
            case 6:
                System.out.println("恭喜您,您中了一等奖!");
                break;        //注意:如果此处不加break,则会发生case穿透,第一个case后面的代码将会被全部执行编译,所以必须加上。
            case 5:
                System.out.println("恭喜您,您中了二等奖!");
                break;
            case 4:
                System.out.println("恭喜您,您中了三等奖!");
                break;
            default:
                System.out.println("很遗憾,您未中奖!");
                break;
            }
        }
    }

        ②使用switch语句实现判断26个拉丁字母的音素

    package exercise;
    
    /**
     * @author 刘小将
     * switch语句:多选择结构
     * 判断26个拉丁字母的因素
     */
    public class TestSwitch {
        
        public static void main(String[] args) {
            
            char a = 'a';
            int rand = (int)(26*Math.random());
            char a2 = (char)(a+rand);        //强制转型为char型
            System.out.println(a2+":");
            switch(a2) {
            case 'a':
                System.out.println("元音");
                break;
            case 'e':
                System.out.println("元音");
                break;
            case 'i':
                System.out.println("元音");
                break;
            case 'o':
                System.out.println("元音");
                break;
            case 'u':
                System.out.println("元音");
                break;
            case 'w':
                System.out.println("半元音");
                break;
            case 'y':
                System.out.println("半元音");
                break;
            default:
                System.out.println("辅音");
                break;
            }
        }
    }
  • 相关阅读:
    工作流二次开发之新增表单实践(二)
    layui表格及工作流二次开发实践(一)
    记一个递归封装树形结构
    SpringCloud微服务之宏观了解
    统一结果返回&统一异常处理
    mybatis-Plus 实践篇之CRUD操作
    修改MariaDB-root密码
    iftop-监控服务器实时带宽情况
    Wordpress安装-报错说明
    MariaDB忘记root密码
  • 原文地址:https://www.cnblogs.com/joyfulcode/p/12307322.html
Copyright © 2020-2023  润新知