151
3
기초를 튼튼히
루프에 복잡한 조건을 사용하기 전에 컬렉션에서 미리 원소를 걸러내는 방법이 있다.
5
NOTE
_
스칼라의
for
내장은
break
continue
제공하지 않는다. 하지만 다른 기능을 활용하면 그
사용할 필요가 없다.
3.7
다른 루프 표현
스칼라가 다른 루프 표현도 제공하기는 하지만,
for
내장이 너무나 강력하고 유연한 만큼 다른
루프를 자주 사용하지는 않는다. 다만 때로는
while
루프가 여러분의 필요에 들어맞는 경우
있을 것이다.
3.7.1
스칼라
while
루프
while
루프는 조건이 참인 동안 코드 블록을 반복한다. 예를 들어 다음 코드는 다음번
13
일의
금요일이 때까지 매일 번씩 불만을 표시한다.
//
src
/
main
/
scala
/
progscala2
/
rounding
/
while
.
sc
//
경고:
스크립트는
아주
시간
동안
루프를
돈다
!
import java
.
util
.
Calendar
def isFridayThirteen
(
cal
:
Calendar
):
Boolean
=
{
val dayOfWeek
=
cal
.
get
(
Calendar
.
DAY
_
OF
_
WEEK
)
val dayOfMonth
=
cal
.
get
(
Calendar
.
DAY
_
OF
_
MONTH
)
//
스칼라
메서드는
마지막
식의
결과를
반환한다
.
(
dayOfWeek
==
Calendar
.
FRIDAY
)
&&
(
dayOfMonth
==
13
)
}
while
(!
isFridayThirteen
(
Calendar
.
getInstance
()))
{
println
("
Today isn
'
t Friday the 13th
.
Lame
.")
5
주_
break
에 대한 수요가 있으므로 스칼라도
scala
.
util
.
control
.
Breaks
(
http
://
bit
.
ly
/
1zmwKGO
) 객체를 통해 그런 기능을
제공한다. 다만 필자는 이를 사용해본 적이 없으며, 여러분도 사용해서는 된다.

Get 프로그래밍 스칼라: 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.