和 if/else 语句一样,switch 语句也能让你通过有条件地执行代码来改变程序的执行流程。
区别在于,switch 语句只能把一个基本类型或字符串表达式的值与预先定义的常量值进行比较。
使用switch语句时,有几个关键字很有用。
switch:这个关键字用来声明switch的结构。
它后面跟着会改变结果的表达式或变量。case:你会用这个关键字来声明结果可能出现的各种情况。break:break关键字非常有用,它能在想要的流程结束时停止switch的执行。
如果忘了写它,程序会继续执行下去,可能产生意想不到的结果。default:顾名思义,当没有其他case匹配表达式的结果时,用它作为默认结果。最简单的switch语句会测试一个基本类型或字符串表达式,并根据它的值做出判断。
例如:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
你正在开发一个系统,帮助某家足球俱乐部网站的工作人员报道比赛。数据来自各种来源,经过清洗后被汇入同一条数据流。
这支球队一直只踢 4-3-3 阵型,也从未认可 1965 年那项允许换人的规则修改,更别说扩大阵容了。
球员的描述如下:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
实现静态方法FootballMatchReports.onField(),根据球衣号码输出球员的描述。
FootballMatchReports.onField(10);
// => "striker"
修改FootballMatchReports.onField()方法,当处理到超出 1 到 11 这个范围的球衣号码时,返回“invalid”。
FootballMatchReports.onField(13);
// => "invalid"