本文主要是介绍Java 流程控制结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- Java 流程控制结构
- 一,switch-case 结构
- 1,switch-case 语法说明
- 2,案例: 输入一个月份和一个天数判断是第几天
Java 流程控制结构
一,switch-case 结构
1,switch-case 语法说明
介绍 switch-case 的语法格式
/*** 分支结构只之wsitch-case的使用* 1. 语法格式* * switch(表达式){* case 常量1:* // 执行语句1* // break;* case 常量2:* //执行语句2* //break;* ...* default: (类似于else)* //执行语句2* //break;* }* * 2. 执行过程* 根据表达式中的值,依次匹配case语句,一旦与某一个case中的常量相等,那么就执行此case中的执行语句。* 执行完此执行语句之后* 情况1:遇到break,则执行 break 后,跳出当前的 switch-case 结构* 情况2:没有遇到 break ,则继续执行其后的case中的执行语句 -> case 穿透* 直到遇到break 或者执行完所有的case及default中的语句 退出* * 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 是可选的,而且位置是灵活的*/class SwitchCaseTest{ //如果不在条件最后面家上 break 的话,那么就算执行了这个分支,他还是不会结束,把后面的分支一起输出。比如我的num是1,到case 1的时候应该输出了,然后输出了one还没结束,把后面的 "没有这个数字也输出了"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 结构default:System.out.println("没有这个数字");break;}//第二个例子,String 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;}}}
2,案例: 输入一个月份和一个天数判断是第几天
利用了 switch-case 穿透性
/** * 案例:编写程序,键盘上输入2023年的"month" 和 "day",要求通过程序输出输入的日期为2023年的第几天。* switch-case 和 if-else 之间的转换* 开发中凡是可以使用switch-case结构的场景,都可以改写为if-else,反之,不成立* 开发中,如果一个具体问题既可以使用switch-case,又可以使用if-else的时候,推荐使用switch-case,* 为什么? 因为 switch-case相较与if-else效率稍高。*/
import java.util.Scanner;
class SwitchCaseTest2{public static void main(String[] args) {//1.使用Scanner,从键盘获取2023年的month,dayScanner input = new Scanner(System.in);int month = input.nextInt(); //阻塞式方法int day = input.nextInt();//2.使用switch-case实现分支结构int sumDays = 0;switch (month) { //利用 switch case 的穿透性,如果是 12 月那么就从上往下加下去case 12:sumDays += 30;case 11:sumDays += 31;case 10:sumDays += 30;case 9:sumDays += 31;case 8:sumDays += 31;case 7:sumDays += 30;case 6:sumDays += 31;case 5:sumDays += 30;case 4:sumDays += 31;case 3:sumDays += 28;case 2:sumDays += 31;case 1:sumDays += day;}System.out.println("2023年" + month + "月" + day + "日是当前的第" + sumDays + "天");input.close(); // 为了防止内存泄漏}}
这篇关于Java 流程控制结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!