Java流程控制:分支结构之switch-case的使用
/*
分支结构之switch-case的使用1、语法格式switch(表达式){case 常量1://执行语句1break;case 常量2://执行语句2break;.....default://执行语句3break;
}2、执行过程:
根据表达式中的值,依次匹配case语句。一旦与某一个case中的常量相等,那么久执行此case此case中的执行语句。
执行完此执行语句之后情况1:遇到break,则执行break后,跳出当前的switch-case结构情况2:没有遇到break,则继续执行其后的case中的执行语句。(并不会再与其它case语句中的常量匹配了,直接执行case后的语句)。 ------>case 穿透...直到遇到break或者执行完所有的case及default中的语句,退出当前的switch-case结构3、说明:
①switch中的表达式只能是特定的数据类型。如下:byte、short、char、int、枚举(JDK5.0新增)、String(JDK7.0新增)
②case后都是跟的常量,使用表达式与这些常量做相等的判断,不能进行范围的判断
③开发中,使用switch-case时,通常case匹配的情况都有限。
④break:可以使用在switch-case中。一旦执行break关键字,就跳出当前的switch-case结构
⑤default:类似于if-else中的else结构。default是可选的,而且位置是灵活的,习惯写在最后4、switch-case 与 if-else之间的转换
①开发中,凡是可以使用switch-case结构的场景,都可以使用if-else。反之不成立
②开发中,如果一个具体问题既可以使用switch-case,又可以使用if-else。推荐使用switch-case。为什么?switch-case相较于if-else效率更高。
*/
class SwitchCaseTest
{public static void main(String[] args) {int num = 1;switch(num){case 0:System.out.println("zero");break;case 1:System.out.println("one");break;//结束当前的switch-case结构case 2:System.out.println("two");break;case 3:System.out.println("three");break;default:System.out.println("other");break;}//default位置任意时:int num1 = 10;switch(num1){default:System.out.println("other");//break; // 若此时不加break,则结果出了输出other外,还会输出zerocase 0:System.out.println("zero");break;case 1:System.out.println("one");break;//结束当前的switch-case结构case 2:System.out.println("two");break;case 3:System.out.println("three");break;}//另例:String season = "summer";switch(season){case "spring":System.out.println("春暖花开");break;case "summer":System.out.println("夏日炎炎");break;case "autumn":System.out.println("秋高气爽");break;case "winter":System.out.println("冬雪皑皑");break;/*default:System.out.println("季节输入有误");break;*/ }//错误的例子:编译不通过/*int number = 20;switch(number){case number > 0:System.out.println("正数");break;case number > 0:System.out.println("负数");break;default:System.out.println("零");break;}*/}
}
运行结果如下: