Scala 封装可break和continue的foreach循环

发现scala里没有break和continue, 有时候实在是需要的话就要自己try catch异常,代码看起来有点蛋疼, 所以封装了一个可break和continue的foreach.

import scala.collection.TraversableLike

case class Breakable() {

  def break: Unit = throw new BreakException

  def continue: Unit = throw new ContinueException

  def foreach(t: TraversableLike[_, _], op: Any => Unit): Unit = {
    try {
      t.foreach(i => {
        try {
          op(i)
        }catch {
          case ex : Throwable =>
            if(!ex.isInstanceOf[ContinueException]) throw ex
        }
      })
    }catch {
      case ex : Throwable =>
        if(!ex.isInstanceOf[BreakException]) throw ex
    }
  }
  class BreakException extends Exception
  class ContinueException extends Exception
}

  

使用

import com.myTest.util.Breakable

/**
 * Created by Administrator on 2017/2/25 0025.
 */
object TestCode {
  def main(args: Array[String]) {
    val b = Breakable()
    val a = List(1,2,3,4,5,6,7,8,9)
    b.foreach(a, i => {
      if(i == 5) b.continue
      if(i == 7) b.break
      println(i)
    })
  }

}

  输出

1
2
3
4
6

时间: 2024-11-14 00:16:36

Scala 封装可break和continue的foreach循环的相关文章

java中break和continue跳出指定循环(转载)

java中break和continue跳出指定循环 java中break和continue可以跳出指定循环,break和continue之后不加任何循环名则默认跳出其所在的循环,在其后加指定循环名,则可以跳出该指定循环(指定循环一般为循环嵌套的外循环). break跳出指定循环示例代码: loop1:for(int x = 0; x < 4; x++) { loop2:for (int y = 0; y < 5 ; y++ ) { System.out.println("x=&quo

Java中break和continue跳出指定循环

在Java中,break和continue可以跳出指定循环,在循环前指定一个标签名称,使用break跳出即可.continue同. 代码如下: (1) 简单的一个continue会退回最内层循环的开头(顶部),并继续执行.        (2) 带有标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环 (3) break会中断当前循环,并移离当前标签的末尾. (4) 带标签的break会中断当前循环,并移离由那个标签指示的循环的末尾. 扩展: Java中,goto语句作为保

break与continue,while 循环和一维数组的学习及作业

1.break与continue.这两个关键字一般放在循环的花括号里面使用.break——结束整个循环.continue——结束本次循环,进入下次循环. break的案例: int i = 1; for(;;) { if(i>100) { break; } Console.Write(i+"\t"); i++; } continue的案例: for (int i = 1; i <= 100; i++) { if(i%2 == 0) { continue; } Console

for循环while循环break跳出循环continue结束本次循环exit退出脚本

20.10 for循环1到100相加的值执行结果 打印出1-100的数字 if [ -d $a ]thenls -d $afi它相当于 [ -d $a ] && ls $a 上图创建的3空格4.txt是一个文件,查在for语句循环的时候将它拆分成3与4.txt两个文件了,说明for循环是以空格作为分隔符的,这个问题要注意20.11 20.12 while循环需求每隔半分钟检查一下系统的负载,当负载大于10的时候就发一封邮件,隔30 秒执行一次这是一个死循环脚本30秒执行一次这个脚本是让用户

for循环 while循环 break跳出循环 continue结束本次循环 exit退出整

一.for循环需求:计算1-100所有数字的和[[email protected] shell]# vi for1.sh#!/bin/bashfor i in seq 1 100doecho $i //先把100个数字打印出来done[[email protected] shell]# sh for1.sh //执行脚本打印出100个数字 继续修改脚本:[[email protected] shell]# vi for1.sh#!/bin/bashsum=0for i in seq 1 100d

Bash之break和continue命令在循环中的作用

1 continue:直接跳过本次循环,进入下一次循环. #!/bin/bash a=10 b=15 while [ $a -le $b ] do ((a++)) if [ $a -eq 11 ] || [ $a -eq 13 ] then continue fi echo $a done [[email protected] ~]# ./a.sh 12 14 15 16 2 break:此命令将会跳出循环 #!/bin/bash a=8 b=15 while [ $a -le $b ] do

python学习之break和continue在for循环中的使用(案例:打印出10以内的偶数,并且只要前三个偶数)

运行程序,break是整个程序都跳出 continue则表示跳过当前一次循环,然后继续执行循环 原文地址:https://www.cnblogs.com/justinyang/p/8834572.html

for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本

原文地址:https://www.cnblogs.com/xiaobo-Linux/p/8920368.html

break和continue的区别以及标签label的使用

break表示直接跳出当前循环,break只能运用于switch--case语句以及循环之中 continue则表示跳出当次循环,继续执行下一次循环 label标签则可以选择break,或者continue针对哪一个循环语句 例如:输出1到10的所有数,循环输出四行. 如果i%4==0则break: 如果i%4==0则continue: 1 class TestBreakContinue 2 { 3 public static void main(String[] args) 4 { 5 /*