switch语句的运用
2014-01-21 20:11
246 查看
当选择结构的分支越多时,if-then-else语句就会变得越来越难以看懂。Java提供了另一种多分支语句—switch语句。switch语句是多分支的开关语句,其语法格式如下。 switch(表达式){ case 常量表达式1:语句组1; [ break;] case 常量表达式1:语句组1; [ break;] … case 常量表达式1:语句组1; [ break;] default:语句块n }
说明:
switch后面的表达式值的数据类型可以是字符型(char)、字节型(byte)、短整型(short)或者整型(int)等原始数据类型,但是不可以是布尔型(boolean)、长整型(long)、浮点型(float、double)。
switch后面的表达式值的数据类型,还可以是枚举类型(Enum),或者原始数据类型的包装类(Character、Byte、Short、Integer)。关于枚举类型和原始数据类型的包装类,在后面章节详细讲解。从JDK7开始,switch后面的表达式值的数据类型也支持字符串(String)类型。
case后面的常量表达式的值的类型,必须与switch后面的表达式值的类型相匹配,而且必须是常量表达式或直接字面量。
break语句会中断switch语句的执行,即结束switch语句。break语句可以省略。如果省略,那么程序会按顺序执行switch中的每一条语句,直到遇到右大括号或break为止。
语句块可以是一条语句或多条语句,但不需要使用大括号括起来。
case分支语句和default语句都不是必需的,可以省略。
switch语句执行的过程如下。
(1)将switch表达式的值与各个case后面的常量表达式的值一一进行比较。
(2)当表达式的值与某个case分支的值相等时,程序执行从这个case分支开始的语句组。
(3)如果没有任何一个case分支的值与switch表达式的值相匹配,并且switch语句含有default分支语句,则程序执行default分支中的语句组。
(4)直到遇到break语句或右大括号,结束switch语句。
class Demo2{
public static int getMonthNumber(String month){
int monthNumber=0;
if(month==null){
return monthNumber;
}
switch(month.toLowerCase()){
case "一月":
monthNumber=1;
break;
case "二月":
monthNumber=2;
break;
case"三月":
monthNumber=3;
break;
case "四月":
monthNumber=4;
break;
case "五月":
monthNumber=5;
break;
case "六月":
monthNumber=6;
break;
case "七月":
monthNumber=7;
break;
case "八月":
monthNumber=8;
break;
case "九月":
monthNumber=9;
break;
case "十月":
monthNumber=10;
break;
case "十一月":
monthNumber=11;
break;
case "十二月":
monthNumber=12;
break;
default:
monthNumber=0;
break;
}
return monthNumber;
}
public static void main(String[] args){
String month="八月";
int returnedMonthNumber=Demo2.getMonthNumber(month);
if(returnedMonthNumber==0){
System.out.println("无效的月份");
}
else{
System.out.println(returnedMonthNumber);
}
}
}
说明:
switch后面的表达式值的数据类型可以是字符型(char)、字节型(byte)、短整型(short)或者整型(int)等原始数据类型,但是不可以是布尔型(boolean)、长整型(long)、浮点型(float、double)。
switch后面的表达式值的数据类型,还可以是枚举类型(Enum),或者原始数据类型的包装类(Character、Byte、Short、Integer)。关于枚举类型和原始数据类型的包装类,在后面章节详细讲解。从JDK7开始,switch后面的表达式值的数据类型也支持字符串(String)类型。
case后面的常量表达式的值的类型,必须与switch后面的表达式值的类型相匹配,而且必须是常量表达式或直接字面量。
break语句会中断switch语句的执行,即结束switch语句。break语句可以省略。如果省略,那么程序会按顺序执行switch中的每一条语句,直到遇到右大括号或break为止。
语句块可以是一条语句或多条语句,但不需要使用大括号括起来。
case分支语句和default语句都不是必需的,可以省略。
switch语句执行的过程如下。
(1)将switch表达式的值与各个case后面的常量表达式的值一一进行比较。
(2)当表达式的值与某个case分支的值相等时,程序执行从这个case分支开始的语句组。
(3)如果没有任何一个case分支的值与switch表达式的值相匹配,并且switch语句含有default分支语句,则程序执行default分支中的语句组。
(4)直到遇到break语句或右大括号,结束switch语句。
class Demo2{
public static int getMonthNumber(String month){
int monthNumber=0;
if(month==null){
return monthNumber;
}
switch(month.toLowerCase()){
case "一月":
monthNumber=1;
break;
case "二月":
monthNumber=2;
break;
case"三月":
monthNumber=3;
break;
case "四月":
monthNumber=4;
break;
case "五月":
monthNumber=5;
break;
case "六月":
monthNumber=6;
break;
case "七月":
monthNumber=7;
break;
case "八月":
monthNumber=8;
break;
case "九月":
monthNumber=9;
break;
case "十月":
monthNumber=10;
break;
case "十一月":
monthNumber=11;
break;
case "十二月":
monthNumber=12;
break;
default:
monthNumber=0;
break;
}
return monthNumber;
}
public static void main(String[] args){
String month="八月";
int returnedMonthNumber=Demo2.getMonthNumber(month);
if(returnedMonthNumber==0){
System.out.println("无效的月份");
}
else{
System.out.println(returnedMonthNumber);
}
}
}
相关文章推荐
- java有关switch语句运用
- switch语句的初次运用
- 运用switch语句实现选择效果
- C++ 第十二周报告4--《 运用switch语句 求存款利率 》
- while, do-while ,switch···case语句的学习与运用
- switch语句简单运用
- if语句运用和switch初入
- 多分支选择结构与switch语句的运用.cpp
- switch语句的运用
- 关于switch...case...语句(Compiler Error C2360)
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- switch语句的优化
- C语言基础编程(switch语句)
- Javascript基础教程之switch语句
- Java条件语句之 switch基本用法
- 蓝鸥Unity开发基础——Switch语句学习笔记
- 举例讲解Swift编程中switch...case语句的用法
- 更深入一点理解 switch 语句 及 c/c++ 对 const 的处理
- 关于switch语句中省略break语句的问题
- PHP的switch判断语句的“高级”用法详解