关于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中间的语句执行

最新文章

  1. git 出错误“值对于Uint32太大或太小”
  2. AppCode 2016.2.3 发布,支持 Swift3 的特性
  3. 尚学堂Spring视频教程(七):AOP XML
  4. JQuery按回车提交数据
  5. js中的this指针(四)
  6. free pascal 错误代码表
  7. asp.net项目下的web service返回json数据问题
  8. 实现在Android开发中的Splash Screen开场屏的效果
  9. 解决Intellij IDEA 通过archetype创建Maven项目缓慢的问题
  10. cocos2d-x中Node中重要的属性
  11. c++ 字符类型总结区别wchar_t,char,WCHAR(转)
  12. sass补充(2019-3-9)
  13. Linux基础命令mkdir
  14. final、finally、以及finalize的区别
  15. persist与checkpoint
  16. VMware虚拟机中CentOS 7的硬盘空间扩容
  17. synchronized中判断条件用while而不是if
  18. OS基础:动态链接库(一)
  19. Docker 利用registry创建私有仓库
  20. [转]Pass a ViewBag instance to a HiddenFor field in Razor

热门文章

  1. “typedef int (init_fnc_t) (void);“的含义
  2. NotePad++更改背景颜色
  3. linux禁止root用户直接登录sshd并修改默认端口
  4. HIVE编程指南之HiveQL的学习笔记1
  5. 第 9 章 模板方法模式【Template Method Pattern】
  6. Java语言基础(六)char成员变量默认初始值 最简单的Java源文件 Java的main()方法
  7. ANDROID_MARS学习笔记_S04_004_用HTTPCLENT发带参数的get和post请求
  8. Android用户界面 UI组件--TextView及其子类(一) TextView
  9. wcf 远程终结点已终止该序列 可靠会话出错
  10. MySQL源码 解析器