【Java语言】—顺序结构、分支结构
流程控制语句
Java提供了一些流程控制语句,来控制程序的执行流程。
1.顺序结构
按照代码的先后顺序,以此执行程序。
2.分支结构
(1)if分支
根据判断的结果(真或假)决定执行某个分支的代码。
if分支有三种格式
-
格式1:
if (条件表达式) { 语句体; }
-
格式2:
if (条件表达式) { 语句体1; } else { 语句体2; }
-
格式3:
if (条件表达式1) { 语句体1; } else if(条件表达式2){ 语句体2; } else if(条件表达式3){ 语句体3; } ... else { 语句体n+1; }
(2)switch分支
也是匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。
switch(表达式){ case 值1: 执行代码...; break; case 值2: 执行代码...; break; ... case 值n-1: 执行代码...; break; default: 执行代码n; }
执行流程:
①先执行表达式的值,拿着这个值去与case后的值进行匹配。
②匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。
③如果case后的值都不匹配则执行default代码。
案例:
-
周一:开始上班,努力工作。 周二:请教问题,提升技术。 周三:今晚火锅,龙虾,小啤酒。 周四:逛技术论坛。 周五:打吃鸡,玩王者。 周六:学习,巩固基础。 周日:一半开心一半忧愁。
String weekday = "周三"; switch (weekday) { case "周一": System.out.println("开始上班,努力工作"); break; case "周二": System.out.println("请教问题,提升技术"); break; case "周三": System.out.println("今晚火锅,龙虾,小啤酒"); break; case "周四": System.out.println("逛技术论坛"); break; case "周五": System.out.println("打吃鸡,玩王者"); break; case "周六": System.out.println("学习,巩固基础"); break; case "周日": System.out.println("一半开心一半忧愁"); break; default: System.out.println("数据有误!"); }
(2)switch使用的注意事项
①表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。
②case给出的值不允许重复,且只能是字面量,不能是变量。
③不然忘记写break,否则会出现穿透现象。
(2)switch穿透性
-
如果代码执行到没有写break的case模块,执行完后将直接进入下一个case模块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
switch穿透性案例:(月份天数查看器)
需求:用户输入月份就可以展示该月份的天数 ① 1、3、5、7、8、10、12月份是31天 ② 2月份是闰年为29天,非闰年为28 天 ③ 4、6、9、11月份是30天
代码:
int month = 7; switch (month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(month + "月份有31天"); break; case 2: System.out.println(month + "月份闰年为29天,非闰年为28天"); break; case 4: case 6: case 9: case 11: System.out.println(month + "月份有30天"); break; }
运行结果:
下一篇:
别只知道JVM 而不知道JMM