【Java基础系列】6- 选择结构与分支结构
选择结构与分支结构
选择结构概念:
根据已知条件进行逻辑判断,满足条件后执行响应操作;
1、基本if选择结构
- 语法:
if(布尔表达式) {// 代码块:表达式为真时执行
}
- 执行流程:
- 对布尔表达式进行判断
- 结果为
true
,则先执行代码块,再执行后续代码;
举个例子:
public class TestBaisclf{public static void main(String[] args){double score = 100.0;if(score == 100.0){System.out.println("恭喜,满分!!!");}System.out.println("程序结束");}
}
打开cmd
完成编译以及运行,如下图:
2、if else选择结构
语法:
if(布尔表达式){// 代码块1 }else{// 代码块2 }
执行流程:
- 对布尔表达式进行判断
- 结果为
true
,则先执行代码块1,再退出整个结果,执行后续代码; - 结果为
false
,则先执行 代码块2,再退出整个结构,执行后续代码;
举个例子:
public class TestElse{public static void main(String[] args){double score = 99.0;if(score == 100.0){System.out.println("恭喜,满分");}else{System.out.println("抱歉,罚抄");}System.out.println("程序结束....");} }
打开
cmd
完成编译以及运行,如下图:
3、多重if选择结构
语法:
// 当前的条件为false为假时会继续往下走 if(布尔表达式1){// 代码块1 }else if(布尔表达式2){// 代码块2 }else if(布尔表达式3){// 代码块3 }else{// 代码块4 }
执行流程:
- 表达式1为
true
,则执行代码块1,再退出整个结构; - 表达式2为
true
,则执行代码块2,再退出整个结构; - 表达式3为
true
,则执行代码块3,再退出整个结构; - 以上均为
false
,则执行代码块4,再退出整个结构; - 注意:相互排斥,有一个为
true
,其他均不再执行,适用于区间判断;
- 表达式1为
举个例子:
public class TestMultipleIf{public static void main(String[] args){/*根据预算金额选购车辆预算 > 100w 奔驰S级预算 > 50w 宝马5系预算 > 10w 奥迪A4L预算 < 10w 捷安特自行车*/int money = 110; // 单位:万if(money > 100){System.out.println("奔驰S级");}else if(money > 50){System.out.println("宝马5系");}else if(money > 10){System.out.println("奥迪A4L");}else{System.out.println("捷安特自行车");}System.out.println("程序结束...");} }
打开
cmd
完成编译以及运行,如下图:
4、嵌套if选择结构
语法:
if(外层表达式){if(内层表达式){// 内层代码块1}else{// 内层代码块2} }else{// 外层代码块 }
执行流程:
- 当外层条件满足时,再判断内层条件
注意:
- 一个选择结构中,可嵌套另一个选择结构
- 嵌套格式正确的情况下,支持任意组合
举个例子:
public class TestNestedIf{public static void main(String[] args){/*运动会百米赛跑用时10秒之内的人进入总决赛,否则淘汰*/int timer = 11;char sex = '男';if(timer <= 10){// 进入总决赛if(sex == '男'){System.out.println("男子组决赛");}else{System.out.println("女子组决赛");}}else{System.out.println("淘汰");}} }
打开
cmd
完成编译以及运行,如下图:
5、switch分支结构
语法:
switch(变量 | 表达式){case 值1:逻辑代码1;case 值2:逻辑代码2;case 值n:逻辑代码n;default:未满足时的逻辑代码; }
可判断的类型(不再判断布尔类型)
byte、short、int、char、String(JDK7+)
执行流程:
- 如果变量中的值等于值1,则执行逻辑代码1;
- 如果变量中的值等于值2,则执行逻辑代码2;
- 如果变量中的值等于值n,则执行逻辑代码n;
- 如果变量中的值没有匹配的case值时,执行
default
中的逻辑代码;
注意:
- 当匹配的case执行后,不会自动退出整个结构,而是继续向下执行;
- case…、或者default没有顺序可言的,输出结果都是一样的(比如:将default作为第一个值)
break
关键字- 可在匹配的case执行后,跳出整个结构
适用于等值判断;
例子1:
public class TestSwitch{public static void main(String[] args){/*每日食谱周一:湘菜周二:川菜周三:粤菜周四:浙菜周五:川菜周六:川菜周日:徽菜*/int weekDay = 4;switch(weekDay){// 根据weekDay的值,找到匹配的case,并执行逻辑代码case 1:System.out.println("湘菜");case 2:System.out.println("川菜");case 3:System.out.println("粤菜");case 4:System.out.println("浙菜");case 5:System.out.println("川菜");case 6:System.out.println("川菜");case 7:System.out.println("徽菜");}System.out.println("程序结束...");} }
打开
cmd
完成编译以及运行,如下图:例子2:
public class TestSwitch{public static void main(String[] args){/*每日食谱周一:湘菜周二:川菜周三:粤菜周四:浙菜周五:川菜周六:川菜周日:徽菜*/int weekDay = 4;switch(weekDay){// 根据weekDay的值,找到匹配的case,并执行逻辑代码case 1:System.out.println("湘菜");break;case 2:System.out.println("川菜");break;case 3:System.out.println("粤菜");break;case 4:System.out.println("浙菜");break;case 5:System.out.println("川菜");break;case 6:System.out.println("川菜");break;case 7:System.out.println("徽菜");break;}System.out.println("程序结束...");} }
打开
cmd
完成编译以及运行,如下图:例子3:
向下贯穿特性,可将输出结果一致的放在一起使用;
public class TestSwitch{public static void main(String[] args){/*每日食谱周一:湘菜周二:川菜周三:粤菜周四:浙菜周五:川菜周六:川菜周日:徽菜*/int weekDay = 4;switch(weekDay){// 根据weekDay的值,找到匹配的case,并执行逻辑代码case 1:System.out.println("湘菜");break;case 3:System.out.println("粤菜");break;case 4:System.out.println("浙菜");break;case 2:case 5:case 6:System.out.println("川菜");break;case 7:System.out.println("徽菜");break;}System.out.println("程序结束...");} }
打开
cmd
完成编译以及运行,如下图:例子4:
public class TestSwitch{public static void main(String[] args){/*每日食谱周一:湘菜周二:川菜周三:粤菜周四:浙菜周五:川菜周六:川菜周日:徽菜*/int weekDay = 8;switch(weekDay){// 根据weekDay的值,找到匹配的case,并执行逻辑代码case 1:System.out.println("湘菜");break;case 3:System.out.println("粤菜");break;case 4:System.out.println("浙菜");break;case 2:case 5:case 6:System.out.println("川菜");break;case 7:System.out.println("徽菜");break;//case 8:// System.out.println("请输入1~7之间的整数!"); // 如果输入的值是以上以外的值则无法做出判断,此时可使用defaultdefault:System.out.println("请输入1~7之间的整数!");}System.out.println("程序结束...");} }
打开
cmd
完成编译以及运行,如下图:例子5:
public class TestSwitch{public static void main(String[] args){/*每日食谱周一:湘菜周二:川菜周三:粤菜周四:浙菜周五:川菜周六:川菜周日:徽菜*/int weekDay = 8;switch(weekDay){// 根据weekDay的值,找到匹配的case,并执行逻辑代码default:System.out.println("请输入1~7之间的整数!");break;case 1:System.out.println("湘菜");break;case 3:System.out.println("粤菜");break;case 4:System.out.println("浙菜");break;case 2:case 5:case 6:System.out.println("川菜");break;case 7:System.out.println("徽菜");break;//case 8:// System.out.println("请输入1~7之间的整数!"); // 如果输入的值是以上以外的值则无法做出判断,此时可使用default// case...、或者default没有顺序可言的,输出结果都是一样的(比如:将default作为第一个值)//default:// System.out.println("请输入1~7之间的整数!");}System.out.println("程序结束...");} }
打开
cmd
完成编译以及运行,如下图:
6、局部变量
概念
声明再方法内部的变量,必须先赋值再使用;
作用范围:
定义行开始到所在的代码结束;
注意
- 多个变量,在重合的作用范围内,不可出现重名(命名冲突)
举个例子:
public class TestLocalVariable{public static void main(String[] args){int a = 10; // 局部变量的声明(包含在主方法中),必须先赋值再使用(变量a的作用范围:主方法内)System.out.prinln(a);if(1 == 1){int b = 20; // 局部变量,超出作用范围之后,会立即回收(变量b的作用范围:if选择结构内)System.out.prinln(a);}} }
【Java基础系列】6- 选择结构与分支结构相关推荐
- java选择结构与分支结构
选择结构与分支结构 目录 选择结构与分支结构 1.选择结构 基本if选择结构 if else选择结构 多重if选择结构 嵌套if选择结构 2.分支结构 3.局部变量 4.练习 1.选择结构 概念:根据 ...
- 【Java基础】(六-上)java控制流程——顺序结构和分支结构
控制流程写一篇太长,就像之前第三篇一样,我回过头都不想看,所以分成了两篇,小巧精致,挺好. java控制流程 1. 控制流程是个什么东西? 2. 控制流程的分类 (1)顺序结构 (2)分支结构 一.i ...
- 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- string substring的用法_夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战...
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- [转载] 夯实Java基础系列8:深入理解Java内部类及其实现原理
参考链接: Java内部类 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tut ...
- 夯实Java基础系列14:深入理解Java枚举类
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 夯实Java基础系列18:深入理解Java内部类及其实现原理
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
最新文章
- 王炸!无需额外数据,Transformers超越CNN问鼎ImageNet
- 计算机网络(NETWORK 部分二) 第1-2天
- 初探AngularJS6.x---目录结构说明
- labview霍夫曼编码_哈夫曼编解码压缩解压文件—C++实现
- win10安装ipython_windows10下安装IPython notebook 用来查看.ipynb文档
- 如何在 Asp.Net Core 实现 Excel 导出功能
- 安卓手机安装并使用自动化应用Tasker
- Python-Matplotlib可视化(3)——自定义样式绘制精美统计图
- 接口做的好怎么形容_大连SIEMENS西门子M174接口plc模块
- mysql transaction-isolation_MySQL数据库事务隔离级别(Transaction Isolation Level)
- l298n使能端跳线帽_L298N 驱动模块的应用
- NLP 的巨人肩膀(下):从 CoVe 到 BERT
- 详解搜索引擎的高级搜索语法指令
- java面试题题目与解析(自己网上找的):java208
- [Gym 102135][B - Freebie]2017-2018 8th BSUIR Open Programming Contest
- 桌面linux imx6q,SAIL-IMX6Q添加qt桌面应用程序
- 微信扫码登录很难吗?5步帮你搞定
- 物联网毕业设计项目推荐
- powerdesigner画UML组件图初步
- 解决笔记本电脑连接不上鼠标问题(亲测有效)
热门文章
- CF1770F Koxia and Sequence
- 修改Chrome/Edge浏览器编码方式
- Linux printk formats
- mysql purge 线程_2 mysql的purge线程知多少?
- 有哪些网站值得用python爬虫获取很有价值的数据
- git把我本地文件传到我的指定的仓库
- 服务器僵尸猪人刷怪塔怎么制作,我的世界僵尸猪人刷怪塔制作思路 猪人塔介绍...
- python逐个遍历字符串(含汉字)
- 肠道腺病毒HAdV-F41的冷冻电镜结构揭示人类腺病毒的结构变异
- 掌握这些“学习方法和工具”,让你事半功倍!