switch case 没有break 和default 位置乱放分析

本文详细解析了 Java 中 switch 语句的工作原理,通过三种不同情况(首次默认、末尾默认、中间默认)的示例,展示了在不同条件下 switch 语句的行为表现。文章强调了 switch 语句中 break 的重要性以及它如何影响代码流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.test.foreach;

public class switchTest {
    // first default
    public static void testFirst(int i) {
        switch (i) {
        default:
            System.out.println("default");// first default
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        case 3:
            System.out.println("3");
        }
    }

    // last default
    public static void testLast(int i) {
        switch (i) {
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        case 3:
            System.out.println("3");
        default:
            System.out.println("default");// last default
        }
    }

    // middle default
    public static void testMiddle(int i) {
        switch (i) {
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        default:
            System.out.println("default");// middle default
        case 3:
            System.out.println("3");

        }
    }

    public static void main(String[] args) {
        System.out.println("||||||||||||||| first default  ||||||||||||");
        // first default
        System.out.println("----------case到--------");
        testFirst(2);
        System.out.println("----------case不到--------");
        testFirst(9);

        System.out.println("||||||||||||||||||last default|||||||||||||||||");

        // last default
        System.out.println("----------case到--------");
        testLast(2);
        System.out.println("----------case不到--------");
        testLast(9);

        System.out.println("|||||||||||||||||middle default||||||||||||||||||");
        // middle default
        System.out.println("----------case到--------");
        testMiddle(2);
        System.out.println("----------case不到--------");
        testMiddle(9);

    }
}

运行结果:

||||||||||||||| first default  ||||||||||||
----------case到--------
2
3
----------case不到--------
default
1
2
3
||||||||||||||||||last default|||||||||||||||||
----------case到--------
2
3
default
----------case不到--------
default
|||||||||||||||||middle default||||||||||||||||||
----------case到--------
2
default
3
----------case不到--------
default
3

看了结果,可以这样理解:
(1)switch语句关键地方是进入点,有了进入点没有break的情况下会执行到底
(2)没有匹配值的时候default就是进入点,进入default以后会和普通进入点一样,如果没有break继续执行下面语句
(3)如果有break 则是从进入点到 break中间的语句执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值