选择结构与分支结构

选择结构概念:

根据已知条件进行逻辑判断,满足条件后执行响应操作;

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,其他均不再执行,适用于区间判断;
  • 举个例子:

    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- 选择结构与分支结构相关推荐

  1. java选择结构与分支结构

    选择结构与分支结构 目录 选择结构与分支结构 1.选择结构 基本if选择结构 if else选择结构 多重if选择结构 嵌套if选择结构 2.分支结构 3.局部变量 4.练习 1.选择结构 概念:根据 ...

  2. 【Java基础】(六-上)java控制流程——顺序结构和分支结构

    控制流程写一篇太长,就像之前第三篇一样,我回过头都不想看,所以分成了两篇,小巧精致,挺好. java控制流程 1. 控制流程是个什么东西? 2. 控制流程的分类 (1)顺序结构 (2)分支结构 一.i ...

  3. 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  5. string substring的用法_夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战...

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. [转载] 夯实Java基础系列8:深入理解Java内部类及其实现原理

    参考链接: Java内部类 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tut ...

  7. 夯实Java基础系列14:深入理解Java枚举类

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  8. 夯实Java基础系列18:深入理解Java内部类及其实现原理

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  9. 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

最新文章

  1. 王炸!无需额外数据,Transformers超越CNN问鼎ImageNet
  2. 计算机网络(NETWORK 部分二) 第1-2天
  3. 初探AngularJS6.x---目录结构说明
  4. labview霍夫曼编码_哈夫曼编解码压缩解压文件—C++实现
  5. win10安装ipython_windows10下安装IPython notebook 用来查看.ipynb文档
  6. 如何在 Asp.Net Core 实现 Excel 导出功能
  7. 安卓手机安装并使用自动化应用Tasker
  8. Python-Matplotlib可视化(3)——自定义样式绘制精美统计图
  9. 接口做的好怎么形容_大连SIEMENS西门子M174接口plc模块
  10. mysql transaction-isolation_MySQL数据库事务隔离级别(Transaction Isolation Level)
  11. l298n使能端跳线帽_L298N 驱动模块的应用
  12. NLP 的巨人肩膀(下):从 CoVe 到 BERT
  13. 详解搜索引擎的高级搜索语法指令
  14. java面试题题目与解析(自己网上找的):java208
  15. [Gym 102135][B - Freebie]2017-2018 8th BSUIR Open Programming Contest
  16. 桌面linux imx6q,SAIL-IMX6Q添加qt桌面应用程序
  17. 微信扫码登录很难吗?5步帮你搞定
  18. 物联网毕业设计项目推荐
  19. powerdesigner画UML组件图初步
  20. 解决笔记本电脑连接不上鼠标问题(亲测有效)

热门文章

  1. CF1770F Koxia and Sequence
  2. 修改Chrome/Edge浏览器编码方式
  3. Linux printk formats
  4. mysql purge 线程_2 mysql的purge线程知多少?
  5. 有哪些网站值得用python爬虫获取很有价值的数据
  6. git把我本地文件传到我的指定的仓库
  7. 服务器僵尸猪人刷怪塔怎么制作,我的世界僵尸猪人刷怪塔制作思路 猪人塔介绍...
  8. python逐个遍历字符串(含汉字)
  9. 肠道腺病毒HAdV-F41的冷冻电镜结构揭示人类腺病毒的结构变异
  10. 掌握这些“学习方法和工具”,让你事半功倍!