English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala에서는 기본적으로 break 문이 없지만, Scala에서는 2.8 버전 이후에는 다른 방식으로 구현할 수 있습니다 break 문장. 반복문에서 break 문장이 실행될 때마다 반복문을 중단하고 반복문 뒤의 코드 블록을 실행합니다.
Scala에서 break 문법은 조금 다릅니다. 형식은 다음과 같습니다:
// 다음 패키지를 가져오세요 import scala.util.control._ // Breaks 객체를 생성 val loop = new Breaks; // breakable에서 반복문 loop.breakable{ // 루프}} for(...){ .... // 루프 중지 loop.break; } }
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