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

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中间的语句执行

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
switch语句中,每个case后面可以选择性地使用break来控制程序的跳出。如果一个case没有使用break语句,那么程序将会继续执行下一个case,直到遇到break语句或者switch语句结束。这种情况下,后续的case语句将被依次执行,而不是跳过。所以,如果你希望在找到符合条件的case后就停止执行后续的case语句,你可以在找到符合条件的case后使用break来跳出switch语句。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [浅谈java switch如果case后面没有break,会出现什么情况?](https://blog.csdn.net/weixin_35149412/article/details/114560441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [js switch case default 的用法示例介绍](https://download.csdn.net/download/weixin_38660108/13055896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [switch...case 没有break问题](https://blog.csdn.net/rammuschow/article/details/107051105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值