switch语句用法:

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

  1. switch控制表达式支持的类型有byte、short、char、int、enum(JDK5)、String(JDK7)

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

  3. default语句在当前switch找不到匹配的case时执行,default并不是必须的

  4. 一旦case匹配,就会顺序执行后面的程序代码,直到遇见break(根据这一特点,可以写一些巧妙的代码)

看下面的示例:

 public class SwitchTest {

     public static void main(String[] args) {
// TODO Auto-generated method stub
switchTest((byte)1);
switchTest((short)2);
switchTest(3);
switchTest('4');
switchTest("5");
switchTest(Gender.MAN);
} public static void switchTest(int var) {
switch (var) {
case 3:
System.out.println(var);
break;
}
} /*public static void switchTest(boolean var) {
switch (var) {
case true:
System.out.println(var);
break;
}
}*/ public static void switchTest(short var) {
switch (var) {
case 2:
System.out.println(var);
break;
}
} public static void switchTest(byte var) {
switch (var) {
case 1:
System.out.println(var);
break;
}
} /*public static void switchTest(long var) {
switch (var) {
case 1:
System.out.println(var);
break;
}
}*/ public static void switchTest(String var) {
switch (var) {
case "5":
System.out.println(var);
break;
}
} public static void switchTest(char var) {
switch (var) {
case '4':
System.out.println(var);
break;
}
} public static void switchTest(Gender var) {
switch (var) {
case MAN:
System.out.println(var);
break;
default:
System.out.println("error");
break;
}
}
} enum Gender{
MAN, WOMAN
}

switch的参数类型:

  在JDK6以前,switch仅支持能够等价为int的类型(byte、short、int、char)和枚举类型

  在JDK7中加入了String

  但long、float、double、boolean等不支持

switch-case参数类型的更多相关文章

  1. switch的参数类型

    switch(expr1)中,expr1是一个整数表达式,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型 ...

  2. SWIFT中用Switch case 类类型

    有时觉得SWIFT的语法真的强大而又变态,不说了,直接上代码瞅瞅: 首先先定义一个交通工具的父类 class Vehicle{ var wheels:Int! var speed:Double! in ...

  3. java switch case 枚举类型的反编译结果

     package com.example.demo; import java.io.PrintStream;  // Referenced classes of package com.example ...

  4. C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

    正常情况下,switch case语句是这么写的: : : ... ;break ; default : ... ;break ; } 接下来说一种不常见的,但是对于多参数有很大的帮助的写法: 先给一 ...

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

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

  6. js switch case 判断的是绝对相对===,值和类型都要相等

    js switch case 判断的是绝对相对===,值和类型都要相等

  7. PowerShell控制台输出符号+函数参数类型指定+文本内容读取

    There are several ways: Write-Host: Write directly to the console, not included in function/cmdlet o ...

  8. if else 与switch case判断

    基础数据类型(四类八种 ) 不能为null. 整数型 byte 取值范围2的8次方 short 取值范围2的16次方 int 取值范围2的32次方 一般用int long 取值范围2的64次方 浮点型 ...

  9. 使用反射+策略模式代替项目中大量的switch case判断

    我这里的业务场景是根据消息类型将离线消息存入mongoDB不同的collection中.其中就涉及到大量的分支判断,为了增强代码的可读性和可维护性,对之前的代码进行了重构. 先对比一下使用反射+策略模 ...

随机推荐

  1. Objective-C 入门(给新人的)

    http://www.hengxinsoft.com/2010/12/objective-c-%E5%85%A5%E9%97%A8%EF%BC%88%E7%BB%99%E6%96%B0%E4%BA%B ...

  2. 简谈HashMap、HashTable的区别

    简单的说HashMap是HashTable的轻量级实现,即非线程安全的实现,他们的主要区别概述为: HashMap HashTable (1)允许键和值为null  不允许键或值为null (2)不是 ...

  3. VC下Debug和Release区别

    整理日: 2015年3月23日 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到 ...

  4. jQuery实现Twitter的自动文字补齐特效

    上图效果可以使用jQuery插件Typeahead.js来实现,这款jQuery插件来自于Twitter的一个新的项目,支持远程和本地的数据集.比较有特色的地方在于你可以将数据集使用本地存储(loca ...

  5. Python写UTF8文件,UE、记事本打开依然乱码的问题

    Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...

  6. March of the Penguins

    poj3498:http://poj.org/problem?id=3498 题意:某个冰块上有a只企鹅,总共可以跳出去b只,问是否可能所有的企鹅都跳到某一块冰块上,输出所有的可能的冰块的编号. 由于 ...

  7. 【POJ3710】Christmas Game (博弈-树上的删边问题)

    [题目] Description Harry and Sally were playing games at Christmas Eve. They drew some Christmas trees ...

  8. 【HDOJ】4612 Warm up

    双连通缩点+求树的直径,图论基础题目. /* 4612 */ #pragma comment(linker, "/STACK:1024000000,1024000000") #in ...

  9. eclipse报错 com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 转

    今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了 ...

  10. javad的Collection集合

    集合框架:★★★★★,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合 ...