switch语句由一个控制表达式和多个case标签组成,和if语句不同的是,switch语句后面的控制表达式的数据类型只能是byte、short、char、int四种整数类型,枚举类型和java.lang.String类型(从java7以后才允许),不能是boolean型。case标签后紧跟一个代码块,case标签作为这个代码块的标识。switch语句的语法格式如下:
switch (expression)
{
case condition1:
{
statement(s)
break;
}
case condition2:
{
statement(s)
break;
}
…
case conditionN:
{
statement(s)
break;
}
default:
{
statement(s)
}
}
这种分支语句的执行是先对expression求值,然后依次匹配condition1,condition2…conditionN等值,遇到匹配的值即执行对应的执行体;如果所有case标签后的值都不与expression表达式的值相等,则执行default标前后的代码块。
和if语句不同的是,switch语句中各case标签前后代码块的开始点和结束点非常清晰,因此完全可以省略case后代码块的花括号。与if语句中else类似,switch语句中default标签看似没有条件,其实是有条件的:条件就是expression表达式的值不能与前面任何一个case标签后的值相等。
下面程序示范了switch语句的用法:
程序清单:codes/04/4-2/TestSwitch.java
public class TestSwitch
{
public static void main(String[] args)
{
//声明变量score,并为其赋值为'C'
char score = 'C';
//执行swicth分支语句
switch (score)
{
case 'A':
System.out.println("优秀。");
break;
case 'B':
System.out.println("良好。");
break;
case 'C':
System.out.println("中");
break;
case 'D':
System.out.println("及格");
break;
case 'F':
System.out.println("不及格");
break;
default:
System.out.println("成绩输入错误");
}
}
}
运行上面程序,看到输出"中",这个结果完全正常,字符表达式score的值为'C',对应结果为"中".
转自:http://www.educity.cn/java/164215.html