您的位置:首页 > 编程语言 > Java开发

2014.4.19.12.27_switch_8.28_java switch语句使用注意的四大细节_0.01

2015-04-19 00:40 525 查看
java switch语句使用注意的四大细节
很多朋友在使用java switch语句时,可能没有注意到一些细节,本文将详细介绍使用java switch语句四大要点,需要的朋友可以参考下。
switch语句的格式如下:(它的功能是选出一段代码执行)
switch(整数选择因子) {
case 整数值1 : 语句; break;
case 整数值2 : 语句; break;
case 整数值3 : 语句; break;
case 整数值4 : 语句; break;
case 整数值5 : 语句; break;
...
default:语句;
}
 
但是要注意几点如下:
1.switch中case的参数类型只能是int类型,但是放byte,short,char类型的也可以是因为byte,short,shar可以自动提升(自动类型转换)为int,所以归根到底还是int类型,这里说明一下java有8中数据类型:byte、short、char、int、long、float、double,还有一种boolean,其中boolean不能跟任何类型数据相互转化,小的类型可以自动转化为大的数据类型,大的数据类型转化为小的必须要强制转换。
2.case后可以是表达式。
3.break是用来跳出整个switch语句的,如果没有,将执行下一分支。
4.好的程序员会利用好default。
一、Java switch的使用
二、switch用String作为条件
三、switch语句参数
四、for定义参数
一、java switch的基本使用:
Java代码


1 /* int参数的switch */
2 int x = new Random().nextInt(3);// 0至2的随机数
3 System.out.println("x=" + x);
4 switch (x) {
5 case 0:
6 System.out.println("随机0");break;
7 case 1:
8 System.out.println("随机1");break;
9 case 2:
10 System.out.println("随机2");break;
11 }
12
13 /* 16进制int参数的switch */
14 int x2 = 49;// 0至2的随机数
15 System.out.println("x2=" + x2);
16 switch (x2) {
17 case 0x01:
18 System.out.println("随机0");break;
19 case 0x21:
20 System.out.println("随机1");break;
21 case 0x31:
22 System.out.println("随机49");break;
23 }
24
25 /* int参数的switch */
26 char y = 'b';
27 System.out.println("y=" + y);
28 switch (y) {
29 case 'a':
30 System.out.println("随机a");break;
31 case 'b':
32 System.out.println("随机b");break;
33 case 'c':
34 System.out.println("随机c");break;
35 }
二、java中的switch用String作为条件
在开发java程序的过程中,我们遇到了条件判断首选就是switch,但是遗憾的是,我们java中的switch功能不如C#中的强大,她不支持字符串作为条件。这时我们该怎么办呢?这种种解决方案比较容易理解。
先看代码:
36 public enum Day
37 {
38 SUNDAY, MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY,NOVALUE;
39 public static Day toDay(String str)
40 {
41 try {
42     return valueOf(str);
43 }catch (Exception ex) {
44     return NOVALUE;
45 }
46 }
47 }
48 main:方法体测试
49 Scanner s=new Scanner(System.in);
50 String day=s.next();//输入的字符串
51 switch(Day.toDay(day.toUpperCase())){
52 case SUNDAY:
53 System.out.println("星期天");
54 break;
55 case MONDAY:
56 System.out.println("星期一");
57 break;
58 case TUESDAY:
59 System.out.println("星期二");
60 break;
61 }
看看这个代码,其实是通过定义枚举来实现的。将字符串作为枚举,然后通过toDay方法返回的是一个int的值。这样就可以让switch接受String的条件了。就这么简单!
三、switch语句参数
62 float z=2;
switch(z){
//,不能是z, Cannot switch on a value of type float. Only convertible int values or enum constants are permitted
//也就是说,只有当该数据类型可以自动转换为int型时,才可以作为switch的语句,
//所以该类型表示的范围应该比int的小,short和byte都可以。
case 1: System.out.println(1);break;
case 2: System.out.println(2);break;
case 3: System.out.println(3);break;
}
四、for定义参数
63 /*
*int x =2; int y=3;
这里声明变量的方式" int a=0, b=0;"
如果写成" int a=0, int b=0;"是错误的, 因为如果声明为这种方式,则他们是两个语句,
要用分号隔开,但是for语句中分号只能有两个。所以使用"int a=0,b=0"这种方式好使
*/
64 for(int a=0, b=0; a<2; b=++a, System.out.println("b="+b)){
System.out.println("a="+a);
65 }
66
本文转自csdn博客,稍加修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: