switch语句与if语句不同之处在于: switch语句仅能测试相等的情况,而if语句能够计算任何类型的布尔表达式,也就是switch语句仅查找表达式值与某个case常量是否匹配.而if-else是判断条件语句为真还是假。
当编译器编译switch语句时,Java编译器检查每个case常量并创建一个”跳转表”,该表用于在表达式值的基础上选择执行路径,因此,如果在很多值中进行选择, switch语句将比使用一系列if-else-if语句的等效逻辑代码运行速度快,并且结构清晰。因为编译器知道case常量都是同一类型的,所以要做的只是将它与switch表达式相比较,而对于一系列if表达式,编译器就无此功能.
在实际的代码中,可以根据需要来使用对应的语句实现程序要求的逻辑功能。 |