跟我20天学Java:02-分支结构if分支,switch分支

更多Java全套学习资源均在专栏,持续更新中↑↑戳进去领取~

🍅2022年全新Java学习路线图,含源码+笔记,另附在职提升课
🍅跟我20天学Java:01-计算机基础以及JDK、IDEA等安装详解
🍅跟我20天学Java:02-自动类型转换,表达式的自动类型转换,强制类型转换

🍉Maven简介以及手把手教你下载安装

更多内容加急更新,从安装开始学起来👼



程序流程控制

Java提供了一些流程控制语句,来控制程序的执行流程。
在这里插入图片描述
如果你没有写其他的结构,按照代码的先后顺序,依次执行程序中大多数的代码都是这样执行的。

在这里插入图片描述

🍌分支结构

根据判定的结果(真或假)决定执行某个分支的代码

🍇if分支有三种格式

格式1
格式1if (条件表达式) {
    语句体;	
}

在这里插入图片描述
执行流程:
首先判断条件表达式的结果,如果为true执行语句体,为 false 就不执行语句体。
注意事项:
if 语句中,如果大括号控制的只有一行代码,则大括号可以省略不写。

格式2:
if (条件表达式) {
    语句体1;	
} else {
    语句体2;	
}

在这里插入图片描述
执行流程:首先判断条件表达式的结果,如果为true执行语句体1,为 false 就执行语句体2。

格式3:

if (条件表达式1) {
    语句体1;	
} else if (条件表达式2) {
    语句体2;	
} else if (条件表达式3) {
    语句体3;	
} 
. . .
else {
    语句体n+1;
}

在这里插入图片描述

执行流程:
先判断条件1的值,如果为true则执行语句体1,分支结束;如果为false则判断条件2的值
如果值为true就执行语句体2,分支结束;如果为false则判断条件3的值

如果没有任何条件为true,就执行else分支的语句体n+1。

❓if分支案例

需求:键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制

在这里插入图片描述
需求:键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制

分析

1.键盘录入考试成绩

Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
  1. 由于奖励种类较多,属于多种判断,采用if…else…if格式实现
if (    ) {
} else if (    ) {
} else if (    ) {
} else {
}
  1. 为每种判断设置对应的条件
if (score >= 95 && score <= 100) {
} else if (score >= 90 && score <= 94) {
} else if (score >= 80 && score <= 89) {
} else {
}
  1. 为每种判断设置对应的奖励
System.out.println("山地自行车一辆");
System.out.println("游乐场玩一次");
System.out.println("变形金刚玩具一个");
System.out.println("胖揍一顿");

❓密码校验练习

需求: 键盘录入用户密码, 如果密码为 111111, 程序输出密码正确,否则输出密码有误

分析:
使用Scanner录入用户输入的密码,并使用变量接受
使用 if…else 组织程序逻辑

在这里插入图片描述

🍇switch分支

也是匹配条件去执行分支, 适合做值匹配的分支选择,结构清晰,格式良好。

switch(表达式){
    case1:
           执行代码...;
           break;
    case2:
           执行代码...;
           break;case 值n-1:
            执行代码...;
            break;
        default:
            执行代码n;
}

执行流程:

先执行表达式的值,拿着这个值去与case后的值进行匹配。

匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。

如果case后的值都不匹配则执行default代码。

switch案例

周一:埋头苦干,解决bug
周二: 请求大牛程序员帮忙
周三:今晚啤酒、龙虾、小烧烤
周四: 主动帮助新来的女程序解决bug
周五:今晚吃鸡
周六:与王婆介绍的小芳相亲
周日:郁郁寡欢、准备上班。

在这里插入图片描述

🍇switch使用的注意事项

表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。

case给出的值不允许重复,且只能是字面量,不能是变量。

不要忘记写break,否则会出现穿透现象。

🍇switch穿透性

如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。

switch(表达式){
    case1:
        执行代码1;
    case2:
        执行代码2;case 值n-1:
        执行代码n-1;
        break;
    default:
        执行代码n;
        // break;
}

switch穿透性案例(月份天数查看器)

需求:用户输入月份可以展示该月份的天数。
1、3 、5、 7 、 8、 10、 12月份是 31天
2月份是闰年为29天、非闰年为28天。
4 、6 、9、 11月份 是30天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值