java中switchcase用法_java中switch case用法

java中switchcase用法_java中switch case用法switch介绍在java编写代码时,经常需要使用逻辑判断,除了if else, 还可以通过switch case语句提供多路分支选择流程控制。

switch介绍

在java编写代码时,经常需要使用逻辑判断,除了if else, 还可以通过switch case语句提供多路分支选择流程控制。switch语句根据一个表达式的值,选择运行多个操作中的一个。当需要对选项进行等值判断时,使用switch语句更加简洁明了。switch的case语句可以处理int,short,byte,char,string,enum类型的值,但是不能处理long,double,float类型。

switch case语句的基本语法如下:

switch(表达式) {
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    …
    case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
        break;
}

switch具体使用

例子:

    private static void testSwitch() {
        /** 支持int整型 */
        int type = 1;
        switch (type){
            case 1:
                System.out.println("int type 1");
                break;
            case 2:
                System.out.println("int type 2");
                break;
            default:
                System.out.println("int type unknown");
                break;
        }

        /** 支持byte类型 */
        byte byteType = 1;
        switch (byteType){
            case 1:
                System.out.println("byte type 1");
                break;
            case 2:
                System.out.println("byte type 2");
                break
            default:
                System.out.println("byte type unknown");
                break;
        }

        /** 支持short类型 */
        short shortType = 1;
        switch (shortType){
            case 1:
                System.out.println("short type 1");
                break;
            case 2:
                System.out.println("short type 2");
                break;
            default:
                System.out.println("short type unknown");
                break;
        }

        /** 支持char类型 */
        char charType = 'a';
        switch (charType){
            case 'a':
                System.out.println("char type a");
                break;
            case 'b':
                System.out.println("char type b");
                break;
            default:
                System.out.println("char type unknown");
                break;
        }

        /** 支持string类型(since 1.7) */
        String strType = "a";
        switch (strType){
            case "a":
                System.out.println("str type a");
                break;
            case "b":
                System.out.println("str type b");
                break;
            default:
                System.out.println("str type unknown");
                break;
        }

        /** 支持enum类型(since 1.5) */
        Category category = Category.A;
        switch (category){
            case A:
                System.out.println("category type a");
                break;
            case B:
                System.out.println("category type b");
                break;
            default:
                System.out.println("category type unknown");
                break;
        }
    }
    public static enum Category{
        A,B
    }

输出结果:

int type 1
byte type 1
short type 1
char type a
str type a
category type a

switch注意事项

1. switch(表达式):括号中的‘表达式’只支持部分数据类型,byte、short、int、char、还有枚举;java 7 开始支持string类型。

2. case 值:这里的‘值’只能是常量表达式。

3. default:如果没有符合的case就执行它,但default并不是必须的。

switch和if语句的区别

1. switch和if语句都是选择语句,允许在程序运行时控制程序的执行过程。

2. switch和if-else相比,它使用了Binary Tree算法,不管有多少case,都使用跳转表直接跳转,不需逐个比较查询。绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true。

3. switch的case的值只能是常量表达式,而if-else则可以是更加灵活。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11981.html

(0)

相关推荐

  • 数据库学习之三:mysql的基本管理

    数据库学习之三:mysql的基本管理三、mysql的基本管理 1、数据库关闭启动 数据库启动流程: 2、mysql配置文件 3、配置mysql多实例

    2023-02-24
    96
  • 数据结构第九章查找自测题答案_自考数据结构

    数据结构第九章查找自测题答案_自考数据结构查找的一些基本概念 查找表 是由同一类型的 数据元素 构成的集合,它是一种以查找为“核心”,同时包括其他运算的非常灵活的数据结构。 上面概念中的集合和数学上的定义是一致的,简单地说就是由任意一些可分辨

    2023-01-22
    107
  • 缓存穿透,缓存雪崩,缓存击穿[亲测有效]

    缓存穿透,缓存雪崩,缓存击穿[亲测有效]缓存穿透,缓存雪崩,缓存击穿 本文整理自黑马程序员相关资料 缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都部存在,这样缓存永远不会生效。因此这些请求都会穿过缓存,最终请求到数据库上,对数据

    2023-05-22
    99
  • SQL 入门教程:数据库基础

    SQL 入门教程:数据库基础目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 你正在读本 SQL 教程,这表明你需要以某种方式与数据库打交道。SQL 正是用来实现这一任务的语言,因此在学习 SQL 之前,你应该对数据库及

    2023-04-19
    106
  • oracle服务器性能调优_oracle数据库查询响应慢

    oracle服务器性能调优_oracle数据库查询响应慢某天,测试突然说服务器慢。 通过xshell连接数据库服务器。连接都慢的吓人 连上后发现。 load average 和 wa不正常 io 占用了这么多cpu? 百度了2个sql查询下 当前耗时sq…

    2023-03-09
    105
  • nginx日志归档_docker日志

    nginx日志归档_docker日志在我们线上的生产环境中要备份的东西很多,各种服务日志、数据库数据、用户上传数据、代码等等。用 JuiceFS 来备份可以节省你大量时间,我们会围绕这个主题写一系列的教程,整理出一套最佳实践,方便大家。

    2023-05-07
    105
  • 陈宏申:浅谈京东电商商品文案挖掘难点与优化实践[亲测有效]

    陈宏申:浅谈京东电商商品文案挖掘难点与优化实践[亲测有效]导读: 在电商推荐中,除了推送商品的图片和价格信息外,文案也是商品非常重要的维度。基于编码器解码器范式的序列文本生成模型是文案挖掘的核心,但该种方法面临着两大技术挑战:一是文案生成结果不可靠和生成质量

    2023-05-19
    95
  • 成为Java高手的25个学习目标

    成为Java高手的25个学习目标本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助。对比一下自己,你已经掌握了这25条中的多少 条了呢?1.你需要

    2023-06-26
    93

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注