Scala break 语句

Scala 语言中默认是没有 break 语句,但是你在 Scala 2.8 版本后可以使用另外一种方式来实现 break 语句。当在循环中使用 break 语句,在执行到该语句时,就会中断循环并执行循环体之后的代码块。

语法

Scala 中 break 的语法有点不大一样,格式如下:

  1. // 导入以下包
  2. import scala.util.control._
  3. // 创建 Breaks 对象
  4. val loop = new Breaks;
  5. // 在 breakable 中循环
  6. loop.breakable{
  7. // 循环
  8. for(...){
  9. ....
  10. // 循环中断
  11. loop.break;
  12. }
  13. }

流程图

Scala break 语句 - 图1

实例

  1. import scala.util.control._
  2. object Test {
  3. def main(args: Array[String]) {
  4. var a = 0;
  5. val numList = List(1,2,3,4,5,6,7,8,9,10);
  6. val loop = new Breaks;
  7. loop.breakable {
  8. for( a <- numList){
  9. println( "Value of a: " + a );
  10. if( a == 4 ){
  11. loop.break;
  12. }
  13. }
  14. }
  15. println( "After the loop" );
  16. }
  17. }

执行以上代码输出结果为:

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

中断嵌套循环

以下实例演示了如何中断嵌套循环:

  1. import scala.util.control._
  2. object Test {
  3. def main(args: Array[String]) {
  4. var a = 0;
  5. var b = 0;
  6. val numList1 = List(1,2,3,4,5);
  7. val numList2 = List(11,12,13);
  8. val outer = new Breaks;
  9. val inner = new Breaks;
  10. outer.breakable {
  11. for( a <- numList1){
  12. println( "Value of a: " + a );
  13. inner.breakable {
  14. for( b <- numList2){
  15. println( "Value of b: " + b );
  16. if( b == 12 ){
  17. inner.break;
  18. }
  19. }
  20. } // 内嵌循环中断
  21. }
  22. } // 外部循环中断
  23. }
  24. }

执行以上代码输出结果为:

  1. $ scalac Test.scala
  2. $ scala Test
  3. Value of a: 1
  4. Value of b: 11
  5. Value of b: 12
  6. Value of a: 2
  7. Value of b: 11
  8. Value of b: 12
  9. Value of a: 3
  10. Value of b: 11
  11. Value of b: 12
  12. Value of a: 4
  13. Value of b: 11
  14. Value of b: 12
  15. Value of a: 5
  16. Value of b: 11
  17. Value of b: 12