本帖最后由 fantacyleo 于 2014-8-8 02:25 编辑
Java的switch和C的switch一样,编译后会生成一个类似Map的结构,比如:
- int a = 3;
- switch(a) {
- case 1:
- System.out.println("1");
- break;
- case 2:
- System.out.println("2");
- break;
- case 3:
- System.out.println("3");
- break;
- }
复制代码
你可以认为编译器会生成一个size为4的Map叫switch_table,它的键值对对应是这样的:
key value
1 case 1对应的语句
2 case 2对应的语句
3 case 3对应的语句
default default对应的语句
对于a=3,找对应case子句就类似switch_table.get(3),一步完成。而换成if,则必须老老实实按顺序去判断每一个条件a==1 a==2 最后才是a==3 |