switch语句里不需要必须有break吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch语句里不需要必须有break吗相关的知识,希望对你有一定的参考价值。

switch语句里不需要必须有break。

当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。若常量表达式的量与所有case语句的常量都不相符,将继续执行default语句中的语句,然后结束switch语句。

扩展资料:

switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:

1、只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。

2、switch()的参数类型不能为实型 。

3、case标签必须是常量表达式(constantExpression),如42或者'4'。

4、case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

参考技术A 下面是switch的和break的使用方法:没有break的话,除非你能对条件进行精确控制,不然还要这switch有何用?
int i = 5;
switch(i)
case 0:

System.out.println("0");break;

case 1:
System.out.println("1");break;

case 2:
System.out.println("2");break;

default:
System.out.println("default");break;

情况一:若未找到,则执行默认的case。即全部都有break的时候输出:defalut
情况二:当每一个case都不存在break时,JVM并不会顺序输出每一个case对应的返回值,而是继续匹配,匹配不成功则返回默认case。即全部都没有break的时候会输出:defalut
情况三:当每一个case都不存在break时,匹配成功后,从当前case开始,依次返回后续所有case的返回值。即不存在break和当i=1的时候,会输出1,2,defalut
情况四:若当前匹配成功的case不存在break,则从当前case开始,依次返回后续case的返回值,直到遇到break,跳出判断。即当i=1且i=1的case里面没有break的时候,会出现从符合条件的地方输出,直到break跳出。本回答被提问者采纳

switch语句

格式:

switch语句
Switch(条件表达式){
case 常量1:
    语句1;
    break;
case 常量2:
    语句2;
    break;
    ...
case 常量n:
    语句n;
    break;
default:
    语句:
    break;    //最后这个break可以省略
}

switch条件表达式类型,与case常量类型必须一致

switch条件表达式的类型限byte、short、int、string、enum

 

示例:

class SwitchDemo
{
    public static void main(String[] args)
    {
        char c=‘b‘;
        switch (c)
        {
        case ‘a‘:
            System.out.println("周一");
            break;
        case ‘b‘:
            System.out.println("周二");
            break;
        case ‘c‘:
            System.out.println("周三");
            break;
        case ‘d‘:
            System.out.println("周四");
            break;
        case ‘e‘:
            System.out.println("周五");
            break;
        case ‘f‘:
            System.out.println("周六");
            break;
        default:
            System.out.println("周日");
            break;
        }
    }
}

输出:

周二

 

示例2:

满足条件的case中,所有代码都会执行

class SwitchDemo
{
    public static void main(String[] args)
    {
        char c=‘a‘;
        switch (c)
        {
        case ‘a‘:
            System.out.println("周一");  
            int a,b;
            a=b=3;
            int d=a+b;
            System.out.println(d);
            break;
        case ‘b‘:
            System.out.println("周二");
            break;
        case ‘c‘:
            System.out.println("周三");
            break;
        case ‘d‘:
            System.out.println("周四");
            break;
        case ‘e‘:
            System.out.println("周五");
            break;
        case ‘f‘:
            System.out.println("周六");
            break;
        default:
            System.out.println("周日");
            break;
        }
    }
}

输出:

周一

6

 

示例3:

满足条件后,遇到break时,才跳出执行语句

class SwitchDemo
{
    public static void main(String[] args)
    {
        char c=‘c‘;
        switch (c)
        {
        case ‘a‘:
            System.out.println("周一");
            break;
        case ‘b‘:
            System.out.println("周二");
            break;
        case ‘c‘:
            System.out.println("周三");
            //break;
        case ‘d‘:
            System.out.println("周四");
            //break;
        case ‘e‘:
            System.out.println("周五");
            //break;
        case ‘f‘:
            System.out.println("周六");
            break;
        default:
            System.out.println("周日");
            break;
        }
    }
}

输出:

周三
周四
周五
周六

 

switch中的类型可以是String

class SwitchDemo
{
    public static void main(String[] args)
    {
        String c="周一";
        switch (c)
        {
        case "周一":
            System.out.println("周一");
            break;
        case "周二":
            System.out.println("周二");
            break;
        default:
            System.out.println("不知道");
            break;
        }
    }
}

输出:周一

 

switch中的类型可以是byte

class SwitchDemo
{
    public static void main(String[] args)
    {
        byte c=2;
        switch (c)
        {
        case 1:
            System.out.println("周一");
            break;
        case 2:
            System.out.println("周二");
            break;
        default:
            System.out.println("不知道");
            break;
        }
    }
}

输出:周二

 

switch中的类型可以是short

class SwitchDemo
{
    public static void main(String[] args)
    {
        short c=1111;
        switch (c)
        {
        case 1111:
            System.out.println("周一");
            break;
        case 2222:
            System.out.println("周二");
            break;
        default:
            System.out.println("不知道");
            break;
        }
    }
}

 输出:周二

 

以上是关于switch语句里不需要必须有break吗的主要内容,如果未能解决你的问题,请参考以下文章

break&&continue

switch 中没有break 如何执行

Java中为啥我写switch语句,在case后加break就错误,不加就正确,很困惑,

Java中String,long,byte类型可以作为switch中的表达式吗?

写switch case语句不加break会怎样

groovy(4)中switch