Scala内置控制结构特地去掉了break和continue,是为了更好的适应函数化编程,推荐使用函数式的风格解决break和contine的功能,而不是一个关键字。

如何实现continue的效果

Scala内置控制结构特地也去掉了continue,是为了更好的适应函数化编程,可以使用if – else 或是 循环守卫实现continue的效果

break的应用实例:

import util.control.Breaks._object WhileBreak {def main(args: Array[String]): Unit = {var n = 1//breakable()函数//说明//1. breakable 是一个高阶函数:可以接收函数的函数就是高阶函数(后面详解)//2. def breakable(op: => Unit) {//    try {//      op//    } catch {//      case ex: BreakControl =>//        if (ex ne breakException) throw ex//    }//  }// (1) op: => Unit 表示接收的参数是一个没有输入,也没有返回值的函数// (2) 即可以简单理解可以接收一段代码块// 3. breakable 对break()抛出的异常做了处理,代码就继续执行// 4. 当我们传入的是代码块,scala程序员会将() 改成{}breakable {while (n <= 20) {n += 1println("n=" + n)if (n == 18) {//中断while//说明//1. 在scala中使用函数式的break函数中断循环//2. def break(): Nothing = { throw breakException }break()}}}println("ok~~")//注意break函数,可以使用在for或者do..whilebreakable {for (i <- 1 to 100) {println("i=" + i)if (i == 20) {break()}}}println("ok2~~~~")}
}

continue的应用实例:

object ContinueDemo {def main(args: Array[String]): Unit = {//说明//1. 1 to 10//2. 循环守卫 if (i != 2 && i != 3) 这个条件为ture,才执行循环体//   即当i ==2 或者 i == 3时,就跳过for (i <- 1 to 10 if (i != 2 && i != 3)) {println("i=" + i)}//也可以写成如下的形式println("============================")for (i <- 1 to 10) {if (i != 2 && i != 3){println("i=" + i)}}}
}

练习:

import util.control.Breaks._object Homework01 {def main(args: Array[String]): Unit = {/*100以内的数求和,求出当和 第一次大于20的当前数*/var sum = 0breakable {for (i <- 1 to 100) {sum += iif (sum > 20) {println("第一次大于20的当前数=" + i)break()}}}//除了上面的break机制来中断,我们也可以使用循环守卫实现中断println("===========================")var loop = truevar sum2 = 0for (i <- 1 to 100 if loop == true) {sum2 += iif (sum2 > 20) {println("循环守卫实现中断 第一次大于20的当前数=" + i)loop = false}println("i=" + i)}}
}

练习运行结果:

第一次大于20的当前数=6
===========================
i=1
i=2
i=3
i=4
i=5
循环守卫实现中断 第一次大于20的当前数=6
i=6

scala while循环中断相关推荐

  1. scala(三):流程控制-分支控制、嵌套循环、for、while、do…while循环、循环中断、多支循环

    目录 流程控制 分支控制 嵌套分支 for循环控制 while和do-while循环控制 循环中断 多重循环 流程控制 分支控制 分支控制可以使程序有选择的执行,分支类型有:单分支.双分支.多分支 单 ...

  2. scala中循环守卫_Scala中的循环

    scala中循环守卫 Scala中的循环 (Loops in Scala) In programming, many times a condition comes when we need to e ...

  3. S7-1200循环中断OB30的使用方法及示例程序

    S7-1200循环中断OB30的使用方法及示例程序 OB组织块的类型: 如下表所示,优先级越大,优先级越高 循环中断组织块: 循环中断OB30-OB38以及OB123-OB32767编号的OB. 循环 ...

  4. 九层妖塔SCALA单层循环实现

    Scala一层循环九层妖塔 欢迎点赞收藏 代码实现 欢迎点赞收藏 代码实现 for ( i <- 1 to 9 by 1 ; j = 2 * i - 1 ; k = 9 - i ) {print ...

  5. Scala for循环示例

    为什么80%的码农都做不了架构师?>>>    for循环是一种重复控制结构,允许你高效地编写需要执行特定次数的循环.下面的示例以各种形式描述了Scala中的for循环. 语法--带 ...

  6. es6 forEach/map循环中断

    1.for循环在循环的时候 通过continue中断当次循环 通过break中断整个循环 通过retrun中断函数执行 2.es6的forEach/map循环只能通过return中断当次循环 //目的 ...

  7. scala for循环

  8. JavaScript在内层循环中断外层循环

    很少见的用法-- var elem1 = [1,2,3,5,6]; var elem2 = [7,5,0]; label1 : {     for (var i = 0; i < 10; i++ ...

  9. scala中断循环代码示例

    实例 import scala.util.control._object Test {def main(args: Array[String]) {var a = 0;val numList = Li ...

最新文章

  1. 与后台交互方法一 ——Ajax
  2. Python 技术篇-xlwt库不新建,直接读取已存在的excel并写入
  3. 目标指令c语言是什么,什么是C中的目标文件?
  4. C语言中怎么用循环统计买法,C语言入门谭浩强版简单选择法冒泡法用数组和for循环进行学生成绩简单统计处理...
  5. 据中心综合管理存在诸多挑战
  6. java如何集成dubbo_boot集成dubbo踩过的坑
  7. windows下 Mysql 错误1067 Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
  8. 关于MDK调试stm32f072vbt6(HAL库)内部flash在擦除仿真时,卡死在擦除函数,同时弹出“Cannot access target.shutting down debug sessi
  9. 大气压力换算公式_大气压换算公式(大气压与温度换算公式)
  10. 结构力学计算软件_COMSOL Multiphysics 5.3 软件安装教程
  11. 十三水牌型 图片_十三水三分天下是什么 十三水三分天下牌型详解
  12. 有生之年转ta系列 美术部分 1.1 美术理论基础
  13. Visual Studio C++/C 游戏——双人贪吃蛇 实现方法+代码讲解+算法优化+成功展示+源代码+总结(超详细,适合小白)
  14. Base64 编码整理
  15. 卷积神经网络结构相关
  16. 【Linux 中国】最适合程序员的 10 款 Linux 发行版
  17. CRH直方图和姿态识别代码
  18. 火绒安全软件v5.0.44,比较好的安全防护软件
  19. matlab 贪吃的蛇,贪吃的小蛇绘本教案
  20. 在javaScript中,变量名和函数名不能重名

热门文章

  1. koa连接mysql_CentOS 环境 Node + Koa2 连接 MySQL (ECS系列三)
  2. Debussy的安装
  3. Alipay秘钥问题
  4. 8)排序②排序算法之选择排序[1]直接选择排序
  5. Linux之bash编程基本语法
  6. 常用的JQuery数字类型验证正则表达式
  7. QQ2012 Under Ubuntu
  8. 面试官:如何实现一个高性能的,短链接生成服务?(附源码)
  9. 计算机网络应用PS,计算机一级Photoshop应用试题及答案
  10. Idea--使用Idea调试设置