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为例:
运行结果:
![](https://img-blog.csdn.net/20171004125201570?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmxvd2VyX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2,default不是必须的,可写可不写,位置随意,根据个人需要而定。如果放在case语句之前记得加上break ,否则会继续执行default语句之后的语句,不管case的条件是否满足,都会执行,因为他会把这个条件当成之前满足的那个条件中的内容,所以直到遇到break才会退出,终止这个条件。
例如:
则会向下执行:jg=a+b;遇到break后跳出switch语句。
3,case后必须要跟常量!常量即不能改变的量。如:字符,字符串,数字。
也可以是用final修饰的变量,因为用final修饰后就不能再改变啦!
例如:
注意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
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之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致 Java之戳中痛点 - (4)i++ 和 ++i 探究原理 Java之戳中痛点 - (1)易变业务使用脚本语言编写 Java之戳中痛点 - (2)取余用偶判断,不要用奇判断 (5)switch语句break不能忘以及default不同位置的用法 Java之戳中痛点 - (7)善用Java整型缓存池
- java中switch语句用法详解
- Java之戳中痛点 - (5)switch语句break不能忘以及default不同位置的用法
- Java switch-case语句用法
- Java switch-case语句用法
- Java中Switch Case语句的用法
- switch…case语句在C#和Java中用法的区别?
- Java switch-case语句用法
- 【JAVA基础】switch case语句用法
- java学习之旅18、19--switch语句_基本用法_case穿透现象,jdk7.0新特性_增强switch语句
- Java条件语句之 switch基本用法
- Java学习笔记_14_switch、continue、break执行语句要点
- Java基础之switch语句
- Java 7 增强后的switch分支语句
- JAVA---关于分支结构switch和循环结构for语句的特例
- switch语句的用法
- C语言switch 语句的用法详解
- Java的switch用法
- Java开关语句-switch
- themeleaf中的th:switch条件判断语句用法示例