首页 > 其他 > 详细

05-流程控制

时间:2020-04-28 13:00:39      阅读:124      评论:0      收藏:0      [点我收藏+]

控制语句分为 3 类:顺序、选择和循环。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达
技术分享图片

选择结构

在还没有知道选择结构的时候,编写的程序总是从程序入口开始,顺序执行每一条语句直到执行完最后一条语句结束。但是生活中经常需要进行条件判断,根据判断结果决定是否做一件事情,这就需要选择结构

if 选择结构

技术分享图片

  • 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
  • 语句块只有一条执行语句时,{}可以省略
  • if-else语句结构,根据需要可以嵌套使用
  • 当if-else结构是“多选一”时,最后的else是可选的,可根据需要省略
  • 注意【顺序】!
    • 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓
    • 当多个条件是“包含”关系时,遵循“小上大下 / 子上父下”
  • 练习
    技术分享图片

switch 多选择结构

技术分享图片

  • switch表达式限定:byte、short、char、int、枚举、String

  • case限定:其后必须是一个具体常量且所有case子句中的常量值必须互不相同
    技术分享图片

  • switch语句会根据表达式的值相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句)

  • break可选。用来在执行完一个case分支后使程序跳出switch语句块;但如果不加,就会出现"case穿透"

  • default可选。并且default不一定非要放在最后,可以放在任意位置

    • 但要注意,就算你把default放在最上边,也并不会先执行default,只有在case中找不到相同的值的时候才会去执行default
      技术分享图片

    • 如果default放在最后,加不加break无所谓,反正到末尾了;但如果你随便放,又不想case穿透,得加上break
      技术分享图片

  • 练习

    • 成绩大于60,输出"及格";反之,"不及格"
      技术分享图片

    • 输出year.month.day为该年的第几天
      技术分享图片

if & switch

  • 使用switch-case的,都可以改写为if-else;反之不成立
    • 当布尔表达式是 等值判断 的情况,使用 if-else if-else多选择结构 或者 switch结构 均可
    • 如果布尔表达式是 区间判断 的情况,则只能使用 if-else if-else多选择结构
  • 如果两种语句都可以使用,建议使用swtich语句,效率稍高

循环结构

技术分享图片

for

技术分享图片

while

技术分享图片

do...while

技术分享图片

exercise

技术分享图片
技术分享图片
技术分享图片

嵌套循环

  • 在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环
  • while、do-while与for循环可以任意嵌套多层

技术分享图片
技术分享图片

程序流程控制

  • break;

    • break用于强行退出当前循环,不执行循环中剩余的语句
    • 不仅能用于循环语句中,还能用在switch-case中
  • continue;

    • continue 语句仅用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句
    • 接着进行下一次是否执行循环的判定
      • 用在while,do-while中,continue 语句立刻跳到循环首部,越过了当前循环的其余部分
      • 用在for循环中,跳到for循环的迭代因子部分
  • 带标签的break和continue

    • "标签" 是指后面跟一个冒号的标识符,例如:"label:"
    • 对Java来说唯一用到标签的地方是在循环语句之前
    • 在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方

    技术分享图片

  • return;

    • 并非专门用于结束循环的,它的功能是结束一个方法
    • 当一个方法执行到一个return语句时,这个方法将被结束
    • 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内
  • 总结
    技术分享图片

05-流程控制

原文:https://www.cnblogs.com/liujiaqi1101/p/12793357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!