java中switch语句的用法

来源:互联网 发布:cv用录音软件 编辑:程序博客网 时间:2024/06/05 20:12

首先介绍一下switch语句的格式:
switch(需要判断的表达式){
case 常量1:
break;
case 常量2:
break;
…….
case 常量n:
break;
default:
}
1,需要判断的表达式
可能听的比较多的是:只能是整形或字符型。
但switch中需要判断的表达式的类型,其实不只是整形或字符型。
注意:switch中需要判断的表达式的类型 可以是int, short ,byte,char,String,枚举。
由于byte,short,char都可以隐式转换为int型,所以这些类型及其包装类型也是可以的。switch string的支持从JDK1.7版本开始,是背后做了一个转换,用哈希码进行比较,而哈希码是整形的值。
注意:switch语句无法作用在float,double,long以及他们的包装类型上。编译时会提示出错。
下面以String和int的包装类Integer为例:

public class J_02 {    public static void main(String[] args)    {        /*        //byte数据范围        byte b;        b=(byte)(300);        System.out.println(b);//44        */        double a=1,b=2,jg=0;        String c="+";         switch(c)          {           case "+" : jg=a+b;              break;           case "-" : jg=a-b;              break;           case "*" : jg=a*b;              break;           case "/" : jg=a/b;              break;          }         System.out.println("jg1:"+jg);         Integer i=new Integer(5);         switch(i)          {           case 1: jg=a+b;              break;           case 2: jg=a-b;              break;           case 3: jg=a*b;              break;           case 4: jg=a/b;              break;           default:jg=i;            }         System.out.println("jg2:"+jg);    }}

运行结果:
这里写图片描述
2,default不是必须的,可写可不写,位置随意,根据个人需要而定。如果放在case语句之前记得加上break ,否则会继续执行default语句之后的语句,不管case的条件是否满足,都会执行,因为他会把这个条件当成之前满足的那个条件中的内容,所以直到遇到break才会退出,终止这个条件。
例如:

double a=1,b=2,jg=0;Integer i=new Integer(5); switch(i)          {           default:jg=i;           case 1: jg=a+b;              break;           case 2: jg=a-b;              break;           case 3: jg=a*b;              break;           case 4: jg=a/b;              break;          }         System.out.println("jg2:"+jg);

则会向下执行:jg=a+b;遇到break后跳出switch语句。
3,case后必须要跟常量!常量即不能改变的量。如:字符,字符串,数字。
也可以是用final修饰的变量,因为用final修饰后就不能再改变啦!
例如:

         final int f=5;          Integer i=new Integer(5);         switch(i)          {           default:jg=i;           case 1: jg=a+b;              break;           case 2: jg=a-b;              break;           case 3: jg=a*b;              break;           case 4: jg=a/b;              break;           case f: jg=f;              break;                    }

注意case后所跟的常量类型要和表达式的结果类型一致。
4,break。不加break会执行switch语句中当前语句之后的语句,直到遇到break或所有条件都不满足之后跳出switch语句。

思考题:

以下代码运行时得到什么打印结果?
int i = 4;
switch (i) {
default:
System.out.println(“default”);
case 0:
System.out.println(“zero”);
break;
case 1:
System.out.println(“one”);
case 2:
System.out.println(“two”);

}

//default
Zero

原创粉丝点击