switch的语法格式:
switch (整型或者字符串类型的变量) { case 变量可能值1: 分支一; break; case 变量可能值2: break; default: 最后分支; break; }
在1.7版本之前,这个参数必须是int类型或者可以隐式转换为int类型的变量(例如byte、short、char)以及他们的包装类(Integer等)。
在1.7版本之后可以支持string类型的变量。
常见面试题会问到string和long是否可以作为switch的开关参数。long是不可以转换为int类型的,所以long类型的变量不可以。
2、case之后可以是一个直接的常量值,例如1、2、3、4……也可以是一个使用常量计算式如2+2等,但不能是变量或者带有变量的表达式,如2*a
另外,在case与常量值之后要有一个:,注意不要疏忽了
3、break的作用
break是跳出当前swtch的{},break可以使代码执行完switch的一个分支后结束switch。
如果case后面的分支代码不加break,那么程序执行完该分支后会继续执行下一分支内的代码直到遇见break或者switch执行完。
例如:
public class SwitchDemo { public static void main(String[] args) { int i=3; switch (i) { case 1: System.out.println("今天是星期一"); break; case 2: System.out.println("今天是星期二"); break; case 3: System.out.println("今天是星期三"); break; case 4: System.out.println("今天是星期四"); break; case 5: System.out.println("今天是星期五"); break; case 6: System.out.println("今天是星期六"); break; default: System.out.println("今天是星期日"); break; } } }
今天是星期三
今天是星期四
当我们将所有的break注释掉之后会输出:
今天是星期三
今天是星期四
今天是星期五
今天是星期六
今天是星期日
4、default是可选的,就是当所有的分支都不匹配的时候,程序会执行default内的代码,如果没有,那就不执行呗。
原文:http://blog.csdn.net/caohaicheng/article/details/38014967