English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Scala break 문

Scala 루프

Scala에서는 기본적으로 break 문이 없지만, Scala에서는 2.8 버전 이후에는 다른 방식으로 구현할 수 있습니다 break 문장. 반복문에서 break 문장이 실행될 때마다 반복문을 중단하고 반복문 뒤의 코드 블록을 실행합니다.

문법

Scala에서 break 문법은 조금 다릅니다. 형식은 다음과 같습니다:

// 다음 패키지를 가져오세요
import scala.util.control._
// Breaks 객체를 생성
val loop = new Breaks;
// breakable에서 반복문
loop.breakable{
    // 루프}}
    for(...){
       ....
       // 루프 중지
       loop.break;
   }
}

flux diagram

온라인 예제

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( "a의 값: " + a );
            if( a == 4 {
               loop.break;
            }
         }
      }
      println( "루프 이후" );
   }
}

위 코드를 실행한 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
a의 값: 1
a의 값: 2
a의 값: 3
a의 값: 4
루프 이후

중첩 루프 중지

다음 예제는 어떻게 중첩 루프를 중지하는지 보여줍니다:

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( "a의 값: " + a );
            inner.breakable {
               for( b <- numList2{
                  println( "b의 값: " + b );
                  if( b == 12 {
                     inner.break;
                  }
               }
            } // 내부 루프 중지
         }
      } // 외부 루프 중지
   }
}

위 코드를 실행한 결과는 다음과 같습니다:

$ scalac Test.scala
$ scala Test
a의 값: 1
b의 값: 11
b의 값: 12
a의 값: 2
b의 값: 11
b의 값: 12
a의 값: 3
b의 값: 11
b의 값: 12
a의 값: 4
b의 값: 11
b의 값: 12
a의 값: 5
b의 값: 11
b의 값: 12

Scala 루프