在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。

从Java5开始,java中引入了枚举类型,即enum类型。

从Java7开始,exper还可以是String类型。

switch关键字对于多数java学习者来说并不陌生,由于笔试和面试经常会问到它的用法,这里做了一个简单的总结:

  • 能用于switch判断的类型有:byte、short、int、char(JDK1.6),还有枚举类型,但是在JDK1.7后添加了对String类型的判断
  • case语句中少写了break,编译不会报错,但是会一直执行之后所有case条件下的语句而不再判断,直到default语句
  • 若果没有符合条件的case就执行default下的代码块,default并不是必须的,也可以不写
  package codeAnal;

  public class SwitchDemo {

      public static void main(String[] args) {
stringTest();
breakTest();
defautTest();
} /*
12 * default不是必须的,也可以不写
13 * 输出:case two
14 */
private static void defautTest() {
char ch = 'A';
switch (ch) {
case 'B':
System.out.println("case one");
break;
case 'A':
System.out.println("case two");
break;
case 'C':
System.out.println("case three");
break;
}
} /*
31 * case语句中少写了break,编译不会报错
32 * 但是会一直执行之后所有case条件下的语句,并不再进行判断,直到default语句
33 * 下面的代码输出: case two
34 * case three
35 */
private static void breakTest() {
char ch = 'A';
switch (ch) {
case 'B':
System.out.println("case one"); case 'A':
System.out.println("case two"); case 'C':
System.out.println("case three");
default:
break;
}
} /*
53 * switch用于判断String类型
54 * 输出:It's OK!
55 */
private static void stringTest() {
String string = new String("hello");
switch (string) {
case "hello":
System.out.println("It's OK!");
break; default:
System.out.println("ERROR!");
break;
}
}
}

Switch语句的参数是什么类型的?的更多相关文章

  1. Java学习笔记——switch语句的参数类型

    在JDK1.6的版本中,switch后面的括号里面只能放int类型的值,注意是只能放int类型, 但是放byte,short,char类型的也可以. 是因为byte,short,shar可以自动提升( ...

  2. switch语句中 参数的类型

    switch可作用于char byte short int switch可作用于char byte short int对应的包装类 switch不可作用于long double float boole ...

  3. 透过IL看C#:switch语句(转)

    透过IL看C# switch语句(上) 摘要: switch语句是 C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码.本文介绍了当向 switch语句中传入不同类型的参数时,编译器为其生 ...

  4. switch语句(下)(转载)

    之前我们介绍了在switch语句中使用整数类型和枚举类型的情况.这一部分继续介绍使用string类型的情况.string类型是switch语句接受的唯一一种引用类型参数. 下面来看一段C#代码. 代码 ...

  5. 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型

    1 包的使用 // 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 // 定义包 -新建一个文件夹 -内部有很多go文件 -在每个go文件的第一行,都要声明包名,并且包名必须一致 -在一 ...

  6. java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型

    在jdk 1.6版本中,switch的参数无法使用String类型,只支持int,char,enum类型. 1.6版本之前不支持switch语句存在字符串的判断,升级到1.7或1.8及以上版本即可.

  7. 关于switch语句中使用String类型的实现原理

    在Java 7 以后,switch语句可以用作String类型上. 从本质来讲,switch对字符串的支持,其实也是int类型值的匹配.它的实现原理如下: 通过对case后面的String对象调用ha ...

  8. Switch语句的条件只能接受什么类型的值

    switch语句只能针对基本数据类型使用,这些类型包括int.char.枚举.bool等.对于其他类型,则必须使用if语句. 在一个 switch 中可以有任意数量的 case 语句.每个 case ...

  9. switch语句(初学者)

    C语言提供了另一种用于多分支选择的switch语句(常用于开关),一般形式为: switch ( 常量表达式 ) { case 常量1 :语句; case 常量2 :语句; case 常量3 :语句; ...

随机推荐

  1. Hive| 压缩| 存储| 调优

    Hadoop压缩配置 修改Hadoop集群具有Snappy压缩方式: 查看hadoop支持的压缩方式 [kris@hadoop101 datas]$ hadoop checknative 将编译好的支 ...

  2. LRU缓存,大神写的,值得借鉴

    http://blog.csdn.net/beiyeqingteng/article/details/7010411

  3. TF之RNN:matplotlib动态演示之基于顺序的RNN回归案例实现高效学习逐步逼近余弦曲线—Jason niu

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt BATCH_START = 0 TIME_STEP ...

  4. 关于pycharm中安装第三方库时报错的解决办法(一)

    记录自己的生活!   一.事发背景 在pycharm中直接安装第三方库时因为版本问题总是无法安装成功,事情不大,但是很重要.   二.经过 最开始我自己电脑上安装了Python3.6和Python2. ...

  5. HDU3339 In Action 【最短路】+【01背包】

    <题目链接> 题目大意: 给出一个0-n组成的图,1-n的点上分布着值为pow的电站,给出图的m条边以及距离,从0出发到n个点中的x个点的行走距离和最小(因为是每炸一个点派出一辆坦克),且 ...

  6. Pandas学习2 --- 数据类型Series、DataFrame

    为了更加清楚显示,请点击链接用Jupyter Notebook 查看:截图如下,

  7. webpack+vue+es6+postcss

    本篇文章仿照vue-cli生成的项目结构,自己重新搭建目录,写一个小demo进一步巩固单文件组件的知识,并且学习中间件.一.要解决的问题1.如果把webpack.config.js放进build文件夹 ...

  8. MUI + Spring MVC 实现多图片上传

    后台代码,主要是SpringMVC 接收多文件上传,不是用的MutilFiles 方式,主要是因为MUI 5+ 不支持文件上传的Key是同一个名字 private String saveFile(Mu ...

  9. UVA 814 The Letter Carrier's Rounds

    大致翻译: 对于电子邮件应用程序,您需要描述发生在成对mta之间的基于smtp的通信.发送方 的用户代理向发送消息传输代理(MTA)提供格式化的消息.发送MTA使用SimpleMail 传输协议(SM ...

  10. 每天一条linux命令

    1.ls ls -hG  //MacOS下输出带颜色文件和目录 ls -a // 显示隐藏文件 ls -l // 显示文件权限和组信息 ls -lR /home //列出 home目录包括其内部子目录 ...