关于java中switch使用的一些说明

switch(表达式)

{

case 常量表达式1:语句1;

....

case 常量表达式2:语句2;

default:语句;

}

default就是如果没有符合的case就执行它,default并不是必须的.

case后的语句可以不用大括号.

switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.

如果使用long类型的话编译时会有错误产生,这点在使用上要注意,其他的数据类型都不行。 

简单地说就是能够自动转换程int类型的数据类型才行。 

而case是指switch小括号中的变量会出现且你想要处理的值,它除了可以是个整数、字符之外,还可以是一些简单的算术表达式,不过算数表达式的结果要满足刚刚所说的四种数据类型。一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句

Java代码  
  1. 1.package flowcontrol;
  2. 2.
  3. 3.public class SwitchCase {
  4. 4.    // first default
  5. 5.    public static void testFirst(int i) {
  6. 6.        switch (i) {
  7. 7.        default:
  8. 8.            System.out.println("default");// first default
  9. 9.        case 1:
  10. 10.            System.out.println("one");
  11. 11.        case 2:
  12. 12.            System.out.println("two");
  13. 13.        case 3:
  14. 14.            System.out.println("there");
  15. 15.        }
  16. 16.    }
  17. 17.
  18. 18.    // last default
  19. 19.    public static void testLast(int i) {
  20. 20.        switch (i) {
  21. 21.        case 1:
  22. 22.            System.out.println("one");
  23. 23.        case 2:
  24. 24.            System.out.println("two");
  25. 25.        case 3:
  26. 26.            System.out.println("there");
  27. 27.        default:
  28. 28.            System.out.println("default");// last default
  29. 29.        }
  30. 30.    }
  31. 31.
  32. 32.    // middle default
  33. 33.    public static void testMiddle(int i) {
  34. 34.        switch (i) {
  35. 35.        case 1:
  36. 36.            System.out.println("one");
  37. 37.        case 2:
  38. 38.            System.out.println("two");
  39. 39.        default:
  40. 40.            System.out.println("default");// middle default
  41. 41.        case 3:
  42. 42.            System.out.println("there");
  43. 43.
  44. 44.        }
  45. 45.    }
  46. 46.
  47. 47.    public static void main(String[] args) {
  48. 48.        // first default
  49. 49.        testFirst(2);
  50. 50.        System.out.println("------------------");
  51. 51.        testFirst(9);
  52. 52.
  53. 53.        System.out.println("|||||||||||||||||||||||||||||||||||");
  54. 54.
  55. 55.        // last default
  56. 56.        testLast(2);
  57. 57.        System.out.println("----------------");
  58. 58.        testLast(9);
  59. 59.
  60. 60.        System.out.println("|||||||||||||||||||||||||||||||||||");
  61. 61.        // middle default
  62. 62.        testMiddle(2);
  63. 63.        System.out.println("----------------");
  64. 64.        testMiddle(9);
  65. 65.
  66. 66.    }
  67. 67.
  68. 68.}

输入结果:

Java代码  
  1. 1.two
  2. 2.there
  3. 3.------------------
  4. 4.default
  5. 5.one
  6. 6.two
  7. 7.there
  8. 8.|||||||||||||||||||||||||||||||||||
  9. 9.two
  10. 10.there
  11. 11.default
  12. 12.----------------
  13. 13.default
  14. 14.|||||||||||||||||||||||||||||||||||
  15. 15.two
  16. 16.default
  17. 17.there
  18. 18.----------------
  19. 19.default
  20. 20.there

看了结果,可以这样理解: 

(1)switch语句关键地方是进入点,有了进入点没有break的情况下会执行到底 

(2)没有匹配值的时候default就是进入点,进入default以后会和普通进入点一样,如果没有break继续执行下面语句 

(3)如果有break 则是从进入点到 break中间的语句执行

switch语法中break,default作用说明的更多相关文章

  1. switch语法的盲点

    switch语法在项目使用的频率很低,今天看到一个相关的例子引发一些思考,,同时自己也写了一些简单的例子如下: 实例1: int dayOfWeek = 5; switch (dayOfWeek){ ...

  2. switch中的default的位置

    [转载]http://hi.baidu.com/dannie007zxl/item/5d0c3185577df719c3162724 有的时候,我们对身旁自认为熟悉的东西,却发现很难去给出准确的回答. ...

  3. return break 和continue在for循环中的不同作用

    平时自己经常在函数里见到return,在switch语句中使用break,而continue则用的不多. 其实这三者都能在for循环中发挥不同的作用,让代码更加灵活. 先说return return是 ...

  4. Java开发中经典的小实例-(swich(){case:参数break;default: break;})

    import java.util.Scanner;public class Test6 {    public static void main(String[] args) {        // ...

  5. 循环内的switch中break和continue使用区别

    首先看下break和continue的使用方法. break语句在循环和switch语句中使用,用于终止最近的封闭代码块,如果在嵌套循环中,则只终止最近的循环. continue语句在循环中使用,不能 ...

  6. switch语句中default用法详解

    当年学C语言switch开关语句的时候,很多人会告诉你它是这么用的: switch(表达式){ case常量表达式1: 语句1;break; case常量表达式2: 语句2;break; - case ...

  7. java中break、continue、return作用

    java中break.continue.return作用 0.首先要明确:break和continue是作用对象是循环体:而return的作用对象是方法 break:在执行完本次循环后,跳出所在的循环 ...

  8. switch语句中的选择因子

    switch语句能否用作用在byte上,能否作用在long上,能否作用在String上? switch选择语句的格式为: switch(intergral-selector){ case  integ ...

  9. 语句:if语句、do-while语句、while语句、for语句、for-in语句、with语句、label语句、switch语句以及break和continue语句;

    ECMA-262规定了一组语句(也成为流控制语句),语句定义了ECMASript中的主要语法. 语句分类:条件分支语句.条件判断语句和循环语句 代码块:是一对包裹多行代码的花括号,代码块后不可加引号: ...

随机推荐

  1. Linux grep和find的区别

    这是两个不同的命令,关于grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...

  2. [转]Python中的矩阵转置

    Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...

  3. jsp查询页面和结果页面在同一页面显示和交互

    用frameset实现查询页面和结果页面在同一页面 用target实现交互显示在同一页面上 请参照以下方法解决: main.jsp: <html> <head> <met ...

  4. 服务器慢 mysql-bin.000001文件占满磁盘的原因与解决

    发现 VPS 服务器上的网站反应超级慢,简单的重启.重启各主要服务,发现mysql 的反应极其不正常. 一方面是问题,这与站点访问量有关.开始时从mysql 的配置文件 my.cnf 考虑,但志文工作 ...

  5. Java编程规范整理

    分享一份网友整理的编程过程中的命名规范 包命名 包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反. 由一组以"."连接的标识符构成,通常第一个标识符为 ...

  6. bzoj 1815: [Shoi2006]color 有色图 置换群

    1815: [Shoi2006]color 有色图 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 136  Solved: 50[Submit][Stat ...

  7. MySQL partition分区I

    http://blog.csdn.net/binger819623/article/details/5280267 一.        分区的概念二.        为什么使用分区?(优点)三.    ...

  8. 李洪强iOS开发-网络新闻获取数据思路回顾

    李洪强iOS开发-网络新闻获取数据思路回顾 01 创建一个继承自AFHTTPSessionManager的工具类:LHQNetworkTool 用来发送网络请求获取数据  1.1 定义类方法返回单例对 ...

  9. Apache Commons IO 2.3 几点用法

    //直接将IO流转成字符串 InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { ...

  10. XSS跨站脚本攻击在Java开发中防范的方法

    1. 防堵跨站漏洞,阻止攻击者利用在被攻击网站上发布跨站攻击语句不可以信任用户提交的任何内容,首先代码里对用户输入的地方和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过 ...