Declaración break en Scala

Scala 循环Bucles en Scala

En el lenguaje Scala no hay una declaración break por defecto, pero después de la versión 2.8 puedes usar otra forma para implementarlabreakdeclaración. Cuando se usa en un buclebreakdeclaración, cuando la ejecución llega a esta declaración, se interrumpe el bucle y se ejecuta el bloque de código posterior al cuerpo del bucle.

Sintaxis

La sintaxis de break en Scala es un poco diferente, el formato es el siguiente:

// 导入以下包
import scala.util.control._

// 创建 Breaks 对象
val loop = new Breaks;

// 在 breakable 中循环
loop.breakable{
    // 循环
    for(...){
       ....
       // 循环中断
       loop.break;
   }
}

Diagrama de flujo

Ejemplo

import scala.util.control._

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      val loop = new Breaks;
      loop.breakable {
         for( a <- numList){
            println( "Value of a: " + a );
            if( a == 4 ){
               loop.break;
            }
         }
      }
      println( "After the loop" );
   }
}

Al ejecutar el código anterior, el resultado es:

$ scalac Test.scala
$ scala Test
Value of a: 1
Value of a: 2
Value of a: 3
Value of a: 4
After the loop

Interrumpir bucles anidados

El siguiente ejemplo demuestra cómo interrumpir bucles anidados:

import scala.util.control._

object Test {
   def main(args: Array[String]) {
      var a = 0;
      var b = 0;
      val numList1 = List(1,2,3,4,5);
      val numList2 = List(11,12,13);

      val outer = new Breaks;
      val inner = new Breaks;

      outer.breakable {
         for( a <- numList1){
            println( "Value of a: " + a );
            inner.breakable {
               for( b <- numList2){
                  println( "Value of b: " + b );
                  if( b == 12 ){
                     inner.break;
                  }
               }
            } // 内嵌循环中断
         }
      } // 外部循环中断
   }
}

Al ejecutar el código anterior, el resultado es:

$ scalac Test.scala
$ scala Test
Value of a: 1
Value of b: 11
Value of b: 12
Value of a: 2
Value of b: 11
Value of b: 12
Value of a: 3
Value of b: 11
Value of b: 12
Value of a: 4
Value of b: 11
Value of b: 12
Value of a: 5
Value of b: 11
Value of b: 12

Scala 循环Bucles en Scala

Otras extensiones