switch语句基于测试:测试的是变量的值。测试变量可以是任何基本数据类型,如byte、char、short或int,它将依次与case中的每个值进行比较。如果找到匹配的情况,则执行相应的语句。如果没有找到匹配的值,则执行default语句。default语句是可选的,如果被省略,则当没有任何case匹配时,将不执行任何操作。
Java中的switch实现有一定的限制:测试和值都只能是可被转换为int的基本数据类型。不能在switch中使用更大的数据类型,如long或float、字符串或其它对象,也不能测试除相等性以外的任何关系。这些限制使得switch只能用于最简单的情况。而嵌套的if语句可以用在任何类型的任何测试。
每个case后,可以有一条或多条语句——事实上,可以有任何数目的语句。与if语句不同,不必将多条语句用花括号括起。
如果case中没有break语句,则找到匹配的情况后,该case中的语句及其后到break或switch末尾之前所有语句都将执行。在某些情况下,这确实是想要进行的操作,然而,在大多数情况下,应该包含break语句,以确保只执行相应的代码。
一种不需要break的情况是,对于多个不同的值,都执行相同的语句。如:
Switch (x) {
case 2:
case 4:
case:6:
System.out.println(“x is an even number.”);
break;
default:
System.out.println(“x is an odd number.”);