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

java中switch语句的用法

2017-10-04 13:15 387 查看
首先介绍一下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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java switch