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

来源:互联网 发布:mac网站老是跳转 编辑:程序博客网 时间:2024/06/04 21:06

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代码 clip_image001

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博客,稍加修改

0 0