switch case 相关介绍和没有break 和default 位置乱放分析
2012-06-12 16:29
387 查看
关于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.package flowcontrol;
2.
3.public class SwitchCase {
4. // first default
5. public static void testFirst(int i) {
6. switch (i) {
7. default:
8. System.out.println("default");// first default
9. case 1:
10. System.out.println("one");
11. case 2:
12. System.out.println("two");
13. case 3:
14. System.out.println("there");
15. }
16. }
17.
18. // last default
19. public static void testLast(int i) {
20. switch (i) {
21. case 1:
22. System.out.println("one");
23. case 2:
24. System.out.println("two");
25. case 3:
26. System.out.println("there");
27. default:
28. System.out.println("default");// last default
29. }
30. }
31.
32. // middle default
33. public static void testMiddle(int i) {
34. switch (i) {
35. case 1:
36. System.out.println("one");
37. case 2:
38. System.out.println("two");
39. default:
40. System.out.println("default");// middle default
41. case 3:
42. System.out.println("there");
43.
44. }
45. }
46.
47. public static void main(String[] args) {
48. // first default
49. testFirst(2);
50. System.out.println("------------------");
51. testFirst(9);
52.
53. System.out.println("|||||||||||||||||||||||||||||||||||");
54.
55. // last default
56. testLast(2);
57. System.out.println("----------------");
58. testLast(9);
59.
60. System.out.println("|||||||||||||||||||||||||||||||||||");
61. // middle default
62. testMiddle(2);
63. System.out.println("----------------");
64. testMiddle(9);
65.
66. }
67.
68.}
输入结果:
Java代码
1.two
2.there
3.------------------
4.default
5.one
6.two
7.there
8.|||||||||||||||||||||||||||||||||||
9.two
10.there
11.default
12.----------------
13.default
14.|||||||||||||||||||||||||||||||||||
15.two
16.default
17.there
18.----------------
19.default
20.there
看了结果,可以这样理解:
(1)switch语句关键地方是进入点,有了进入点没有break的情况下会执行到底
(2)没有匹配值的时候default就是进入点,进入default以后会和普通进入点一样,如果没有break继续执行下面语句
(3)如果有break 则是从进入点到 break中间的语句执行
http://cjhbest999.iteye.com/blog/1137124
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.package flowcontrol;
2.
3.public class SwitchCase {
4. // first default
5. public static void testFirst(int i) {
6. switch (i) {
7. default:
8. System.out.println("default");// first default
9. case 1:
10. System.out.println("one");
11. case 2:
12. System.out.println("two");
13. case 3:
14. System.out.println("there");
15. }
16. }
17.
18. // last default
19. public static void testLast(int i) {
20. switch (i) {
21. case 1:
22. System.out.println("one");
23. case 2:
24. System.out.println("two");
25. case 3:
26. System.out.println("there");
27. default:
28. System.out.println("default");// last default
29. }
30. }
31.
32. // middle default
33. public static void testMiddle(int i) {
34. switch (i) {
35. case 1:
36. System.out.println("one");
37. case 2:
38. System.out.println("two");
39. default:
40. System.out.println("default");// middle default
41. case 3:
42. System.out.println("there");
43.
44. }
45. }
46.
47. public static void main(String[] args) {
48. // first default
49. testFirst(2);
50. System.out.println("------------------");
51. testFirst(9);
52.
53. System.out.println("|||||||||||||||||||||||||||||||||||");
54.
55. // last default
56. testLast(2);
57. System.out.println("----------------");
58. testLast(9);
59.
60. System.out.println("|||||||||||||||||||||||||||||||||||");
61. // middle default
62. testMiddle(2);
63. System.out.println("----------------");
64. testMiddle(9);
65.
66. }
67.
68.}
输入结果:
Java代码
1.two
2.there
3.------------------
4.default
5.one
6.two
7.there
8.|||||||||||||||||||||||||||||||||||
9.two
10.there
11.default
12.----------------
13.default
14.|||||||||||||||||||||||||||||||||||
15.two
16.default
17.there
18.----------------
19.default
20.there
看了结果,可以这样理解:
(1)switch语句关键地方是进入点,有了进入点没有break的情况下会执行到底
(2)没有匹配值的时候default就是进入点,进入default以后会和普通进入点一样,如果没有break继续执行下面语句
(3)如果有break 则是从进入点到 break中间的语句执行
http://cjhbest999.iteye.com/blog/1137124
相关文章推荐
- switch case 没有break 和default 位置乱放分析
- Linux源代码浏览、分析工具cscope相关介绍
- 补充ruby on rails的相关介绍并对比J2EE分析其架构
- javascript中关于宽高、位置、坐标等相关属性和方法介绍:
- ARM下位置无关码和位置相关码介绍
- 分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍
- Java之戳中痛点 - (5)switch语句break不能忘以及default不同位置的用法
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致 Java之戳中痛点 - (4)i++ 和 ++i 探究原理 Java之戳中痛点 - (1)易变业务使用脚本语言编写 Java之戳中痛点 - (2)取余用偶判断,不要用奇判断 (5)switch语句break不能忘以及default不同位置的用法 Java之戳中痛点 - (7)善用Java整型缓存池
- 电商用户行为分析大数据平台相关系列1-环境介绍
- 电商用户行为分析大数据平台相关系列9-用户访问session的模块介绍
- Python数据分析相关库介绍
- 当case后有语句时,break不能省略,在没有default的情况下,最后一个case后即使没有语句,也要加上break。
- information_schema中Innodb相关表用于分析sql查询锁的使用情况介绍
- PostgreSQL数据库内核分析 笔记(这本书没有怎么很好的看,主要就是一些数据结构、概念和流程的文字介绍)
- 和数据分析相关的重要Python类库介绍
- 数据分析2:盒图介绍及相关算法实现
- 数据分析和数据挖掘中相关模块的安装和介绍
- information_schema中Innodb相关表用于分析sql查询锁的使用情况介绍
- information_schema中Innodb相关表用于分析sql查询锁的使用情况介绍
- Nagios+zabbix+ganglia的相关参数分析和优缺点介绍