Java中switch用法

一、switch语句基本用法

switch语句用于多分支选择结构,根据不同的情况执行不同的代码块。switch语句的基本语法如下:

    switch(表达式) {
        case 常量1 : 语句1; break;
        case 常量2 : 语句2; break;
        case 常量3 : 语句3; break;
        default: 默认语句;
    }

其中,case后面跟的是常量或枚举值,表达式和常量值的数据类型必须一致。default为可选项,如果所有的case都不匹配,则执行default中的代码块。

以下是一个简单的例子,通过switch语句判断输入的数字是1、2、3三个数字中的哪一个:

    import java.util.Scanner;
    
    public class SwitchDemo {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("请输入数字(1-3):");
            int num = input.nextInt();
            
            switch(num) {
                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("输入错误!");
            }
        }
    }

二、switch语句的特性

switch语句与if语句不同的是,switch语句只能用于判断常量或枚举类型,而不能用于布尔类型或其他数据类型。此外,switch语句有以下特性:

  • switch语句可通过break语句跳出多重嵌套的switch语句。
  • case后面可以加多个常量值,以逗号隔开,表示多个条件执行相同的语句。
  • case语句块中的声明语句必须用花括号包含起来。

三、switch语句的应用场景

switch语句适合于条件比较简单、分支路径比较少的情况,因为等价的if语句会显得冗长、可读性差。例如:对于枚举类型的判断,switch语句比if语句更加适合。

    public enum Weekday {
        MONDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY,
        SUNDAY
    }

    public class SwitchEnumDemo {
        public static void main(String[] args) {
            Weekday day = Weekday.TUESDAY;
            switch(day) {
                case MONDAY:
                    System.out.println("今天是星期一");
                    break;
                case TUESDAY:
                    System.out.println("今天是星期二");
                    break;
                case WEDNESDAY:
                    System.out.println("今天是星期三");
                    break;
                case THURSDAY:
                    System.out.println("今天是星期四");
                    break;
                case FRIDAY:
                    System.out.println("今天是星期五");
                    break;
                case SATURDAY:
                    System.out.println("今天是星期六");
                    break;
                case SUNDAY:
                    System.out.println("今天是星期日");
                    break;
                default:
                    System.out.println("输入错误!");
            }
        }
    }

四、switch语句的注意事项

在使用switch语句时需注意以下问题:

  • case语句中的值不能重复。
  • 如果case语句中没有break语句,则从匹配的语句开始依次执行所有的语句块,直到遇到break语句或switch语句结束。
  • 如果default语句放在最后,则default语句可省略break语句。
  • 如果表达式的值为null,则会抛出NullPointerException异常。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/238159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:09
下一篇 2024-12-12 12:09

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论