switch 语句由一个控制表达式和多个case标签组成。

switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。

switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。

default在当前switch找不到匹配的case时执行。default并不是必须的。

一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

使用实例:

1).int类型switch示例

int i = 3;

switch (i) {
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(0);
}
2).枚举(Enum)类型switch示例
public class TestSwitch {

 
    static enum E {
        A, B, C, D
    }
 
    public static void main(String args[]) {
        E e = E.B;
        switch (e) {
        case A:
            System.out.println("A");
            break;
        case B:
            System.out.println("B");
            break;
        case C:
            System.out.println("C");
            break;
        case D:
            System.out.println("D");
            break;
        default:
            System.out.println(0);
        }
    }
3).String类型switch示例

String str = "C";

switch (str) {
case "A":
    System.out.println("A");
    break;
case "B":
    System.out.println("B");
    break;
case "C":
    System.out.println("C");
    break;
default:
    System.out.println(0);
}
4).break的陷阱:break在switch中用于结束当前流程。一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
int i = 2;

switch (i) {
case 1:
    System.out.println(1);
case 2:
    System.out.println(2);
case 3:
    System.out.println(3);
default:
    System.out.println(0);
}
输出结果:
2

3
0
5).default: default在当前switch找不到匹配的case时执行。default并不是必须的。
int x = 0;

switch (x) {
case 1:
    System.out.println(1);
case 2:
    System.out.println(2);
default:
    System.out.println("default");
}
 
注意事项
1).switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte、short、int、char、还有枚举;需要强调的是:java7之前long和String类型是不能作用在switch语句上的, java7之后String可以使用.
2).case B:C;case是常量表达式,也就是说B的取值只能是常量或者int、byte、short、char(比如1、2、3、200000000000(注意了这是整型)),如果你需要在此处写一个表达式或者变量,那么就要加上单引号; case后的语句可以不用大括号,就是C不需要用大括号包裹着;

3).case后面必须要跟常量, 且不能为long或float类型:

private int CLICK_QUERY = 1;
switch (tag)

 {

  case CLICK_QUERY://错误,CLICK_QUERY不是常量, 用final修饰, 必须是final类型常量,不能是final的变量, 例如:final int CLICK_QUERY = 1; 但不能是final int CLICK_QUERY ;
query(); break;

4).case后面的数值的范围:

byte a = 11;

  switch(a){// C

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

  case 225 : System.out.println(" 11 "); break;// 225超过了byte的范围(byte的范围是-127~128), 因此会出错
 
 
 

java中的switch的更多相关文章

  1. java中的Switch case语句

    java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的 ...

  2. Java中的Switch用法

    一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),   在java1. ...

  3. Java中的switch语句后面的控制表达式的数据类型

    Java中的switch语句后面的控制表达式的数据类型 1.byte 2.char 3.short 4.int 5.枚举类型 6.Java 7允许java.lang.String类型

  4. tips:Java中的switch的选择因子

    tips:Java中的switch的选择因子! /*  switch(){   }  */ switch的()中的判断条件能是什么类型呢? 事实上,在我们学习c++的了解中,switch的参数是一个能 ...

  5. java中的switch用String作为条件

    在开发java程序的过程中,我们遇到了条件推断首选就是switch,可是java中的switch功能不支持字符串作为条件.这时我们该怎么办呢? --使用枚举. 一.枚举简单了解    1.enum是一 ...

  6. Java中的switch语句——通过示例学习Java编程(8)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=19 当我们在代码逻辑中有多个选项,而且需要为每个选 ...

  7. 通过字节码分析java中的switch语句

    在一次做题中遇到了switch的问题,由于对switch执行顺序的不了解,在这里简单的通过字节码的方式理解一下switch执行顺序(题目如下): public class Ag{ static pub ...

  8. 【kotlin】基本语法when的使用,类似于java中的switch,但是又青出于蓝而胜于蓝

    when(要判断的参数){ 参数值为1 ->做这种事情 参数值为2 ->做另一种事情 else -> 类似于switch中的default } 扩展使用:https://www.cn ...

  9. java中的switch结构

     switchkeyword的中文意思是开关.转换的意思,switch语句在条件语句中特别适合做一组变量相等的推断,在结构上比if语句要清晰非常多.switch语句的语法格式为:switch(表达式) ...

随机推荐

  1. RestTemplate对象的使用

  2. 快速搭建ssh项目

    环境:oracle11g.myeclipse2014 首先在web项目中添加spring框架 现在已经添加完spring框架了 然后我们开始添加Hibernate框架 到这一步Hibernate框架就 ...

  3. MySQL基础操作(一)

    MySQL操作 一.创建数据库 # utf CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # gbk CREA ...

  4. hashCode和identifyHashCode的区别

    API: System类提供一个identifyHashCode(Object o)的方法,该方法返回指定对象的精确hashCode值,也是根据该对象的地址计算得到的HashCode值.当某个类的ha ...

  5. youku项目总结(粗略总结)

    一.ORM 之前我们都是以文件保存的形式存储数据,这次我们用的是数据库结合python使用,用到 ORM:关系型映射 类>>数据库的一张表 对象>>表一条记录 对象.属性> ...

  6. WUSTOJ 1341: Lake and Island(Java)

    题目链接:1341: Lake and Island Description 北园孩子的专属福利来啦~学校从北区宿舍到湖心岛修建了一条通道让北园的同学们可以上去一(kuang)同(xiu)玩(en)耍 ...

  7. Spring Boot使用@ConfigurationProperties注解获取配置文件中的属性值

    注意:这种方式要提供属性的getter/setter方法—— 如果idea报错,提示没有相应的执行器,就需要在maven中添加: (虽然不配置代码也能正常运行,作用在下面会说明) 配置了该执行器后,在 ...

  8. Spring AOP日志实现(一)

    前置通知:获取访问的类,访问的方法,带参数和不带参数的 日志表信息描述字段: 获取访问时长:

  9. python装饰器无参及有参案例

    装饰器无参和有参案例:

  10. 匹配script标签及内容js代码的正则表达式

    <script>[\s\S]+?</script>