Declaración break 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: 12Otras extensiones
Bucles en Scala