17_循环中断_break&continue

循环中断 break、continue
* 说明
* 1. scala 去掉了break、continue
* break替代方案
* 1. 抛出异常
* 2. 调用break() 引入 scala.util.control.Breaks
* continue替代方案
* 1. 使用if语句
*
* try catch 自己处理异常
* 语法
* try {
* 可能出现异常的代码
* } catch(异常类名A e){
* 如果出现了异常类A类型的异常,那么执行该代码
* } ...(catch可以有多个)
* finally {
* 最终肯定必须要执行的代码(例如释放资源的代码)
* }
* 代码执行的顺序
* 1.try内的代码从出现异常的那一行开始,中断执行
* 2.执行对应的catch块内的代码
* 3.继续执行try catch结构之后的代码
*
* */
代码示例
import scala.util.control.Breaks
import scala.util.control.Breaks.{break, breakable}

/**
  * @author gaocun
  * @create 2021-10-17 5:54 PM */
object 循环中断_05 {
  /* 循环中断 break、continue
  *  说明
  *     1. scala 去掉了break、continue
  *     break替代方案
  *         1. 抛出异常
  *         2. 调用break() 引入 scala.util.control.Breaks
  *     continue替代方案
  *         1. 使用if语句
  *
  *  try catch 自己处理异常
  *  语法
  *     try {
  *       可能出现异常的代码
  *     } catch(异常类名A e){
  *       如果出现了异常类A类型的异常,那么执行该代码
  *     } ...(catch可以有多个)
  *     finally {
  *       最终肯定必须要执行的代码(例如释放资源的代码)
  *     }
  *   代码执行的顺序
  *     1.try内的代码从出现异常的那一行开始,中断执行
  *     2.执行对应的catch块内的代码
  *     3.继续执行try catch结构之后的代码
  *
  *
  * */
  def main(args: Array[String]): Unit = {
    // 1. 抛出异常 替代break
    try {
      for (i <- 1 to 10) {
        printf("break-%d\n", i)
        if (i == 5) {
          //break
          print("执行break\n")
          throw new RuntimeException
        }

      }
    } catch {
      case e =>
    }
    println("正常结束循环")

    // 2. 采用scala自带函数,退出循环
    Breaks.breakable(
      for (i <- 1 to 10) {
        printf("break1-%d\n", i)
        if (i == 5) {
          //break
          print("执行break1\n")
          Breaks.break()
        }
      }
    )
    println("正常结束循环")

    // 3. 省略break
    breakable {
      for (i <- 1 to 10) {
        printf("break2-%d\n", i)
        if (i == 5) {
          //break
          print("执行break2\n")
          break
        }
      }
    }
    println("正常结束循环")

    println("====if 替代continue=============")
    for (i <- 1 to 10) {
      if (i % 2 == 0) {
        println("执行continue")
        println(i)
      }
    }


  }
}

 

 
posted @ 2021-10-17 18:03  学而不思则罔!  阅读(111)  评论(0)    收藏  举报