Java流程控制语句2

循环结构的特点
循环结构
循环条件
循环操作
循环结构都由如下四个结构组成:
初始化、条件判断、循环体、迭代
while循环
▪ 在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后
来每一次额外的循环,都会在开始前重新计算一次。
▪ 语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。
do-while循环
▪ do-while:
– 先执行,后判断。
▪ while:
– 先判断,后执行。
for循环
▪ for循环语句是支持迭代的一种通用结构,是最有效、最灵 活的循环结构
▪ 语法形式
▪ for (初始表达式;布尔表达式;步进) {
循环体;
▪ }
▪ 注意事项
– for循环在执行条件测试后,先执行程序部分,再执行步进。
– 在for语句的初始化部分声明的变量,其作用域为整个for循环体
– “初始化”和“循环条件表达式”部分可以使用逗号来执行多个操作
– 如果三个部分都为空语句(分号;能省),相当于一个无限循环
跳转语句---break和continue
▪ 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,并执行循环中剩余的语句。(break语句还可用于多支语句switch中)
▪ continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行 的语句,接着进行下一次是否执行循环的判定。
break语句
▪ break:改变程序控制流
– 用于do-while、while、for中时,可跳出循环而执行循环后面的语句

 continue语句

▪ continue :叧能用在循环里
▪ continue 作用:跳过循环体中剩余的语句而执行下一次循环
对比break和continue
▪ 使用场合
– break可用于switch结构和循环结构中
– continue叧能用于循环结构中
▪ 作用(循环结构中)
– break语句终止某个循环,程序跳转到循环块外的下一条语句。
– continue跳出本次循环,进入下一次循环
跳转语句---return
▪ return语句从当前方法退出,返回到调用该方法的语句处,并从 该语句的下条语句处继续执行程序。
▪ 返回语句的两种格式(具体到方法时详细讲解)
– 1、return expression
▪ 返回一个值给调用该方法的语句。
▪ 返回值的数据类型必须和方法声明中的返回值类型一致或是精度低于声明的数据类型。
– 2、return
▪ 当方法声明中用void声明返回类型为空时,应使用这种返回类型,它并返回任何值。
跳转语句总结
▪ break
– switch语句
– 循环语句
▪ continue
– 循环语句
▪ return
– 任何语句中,结束当前方法,和循环其实没有什么关系
多重循环
▪ 三种循环方式
– while
– do-while
– for
▪ 多重循环(循环嵌套)
– 一个循环体内又包含另一个完整的循环结构
– 任何两种循环都可以相互嵌套
– 可以任意层次循环,但是一般不超过3层
▪ 多重循环执行过程
– 外层循环变量变化一次,内层循环变量要变化一遍
递归算法
▪ 什么是递归(recursion)
– 程序调用自身的编程技巧称为递归。
– 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法
▪ 递归问题的特点
– 一个问题可被分解为若干层简单的子问题
– 子问题和其上层问题的解决方案一致
– 外层问题的解决依赖于子问题的解决
递归结构
▪ 递归结构包括两个部分:
递归结束条件解答:什么时候并调用自身方法。如果没有条件,将陷入死 循环。
递归体。解答:什么时候需要调用自身方法。
▪ 递归示例
– 使用递归求n!
– 使用实现斐波那契数列
递归算法
▪ 递归的优点
– 简单的程序
▪ 递归的缺点
– 但是递归调用会占用大量的系统堆栈,内存耗用多,
– 在递归调用层次多时速度要比循环慢的多
▪ 递归的使用场合
– 任何可用递归解决的问题也能使用迭代解决。
– 当递归方法可以更加自然地反映问题,并且易于理解和调试,并且并强调效率问题时,可以采用递归;
– 在要求高性能的情况下尽量避免使用递归,递归既花时间又耗内存。

总结

▪ 选择结构
– if语句 单、双、多分支选择结构,等值、并等值判断均可
– switch语句 叧有多分支选择结构 叧针对等值判断
▪ 循环结构
– while循环
先判断再循环 适合循环次数并固定情况
– do-while循环 先循环再判断 适合循环次数并固定情况
– for循环
适合循环次数固定情况
▪ 循环跳转语句
– break 跳出本层循环,跳出外层循环需要结合标签或符号位实现
– continue 提前结束本次循环
– return 结束当前方法
▪ 多重循环
– 任何两种循环都可以相互嵌套
– 外层循环变量变化一次,内层循环变量要变化一遍
▪ 递归
– 程序调用自身的编程技巧称为递归。
– 递归简单,但是内存耗用多,速度要比循环慢
– 任何可用递归解决的问题也能使用循环解决,反之并不见得

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值