在java中switch后的表达式的类型只能为以下几种:byte、short、char、int(在Java1.6中是这样),
java1.7后支持了对string的判断
switch 的括号一定是表达式, case后一定是表达式的值。
注意的是:switch 结束条件一个是遇到break或者遇到“}”。在java中如果switch的case语句中少写了break;这个关键字,在编译的时候并没有报错;
但是在执行的时候会一直执行所有case条件下的语句并不是去判断,所以会一直执行直到遇到break关键字跳出或者一直执行到defaut语句。
public class TestSwitch{ public static void main(String args[]){ char c = 'a'; //char类型字符 switch(c){ default: System.out.println("打印默认值"); break; case 'a': System.out.println("a"); break; case 'b': System.out.println('b'); break; case 'c': System.out.println('c'); break; case 'd': System.out.println("d"); break; } } }
switch和if语句很像,如果判断数值不多,且符合byte,short,int,char,两个语句都可以,建议使用switch,因为switch会把所有判断条件加载到内存,比较高效。但是对于区间判断和bool类型判断只能用if