제거됨: do-while
제거됨: do-while
do <body> while <cond> 문법 구성은 더 이상 지원되지 않아요. 대신 while을 어떻게 활용하는지, 그리고 왜 이 구성이 제거됐는지 살펴볼게요.
본문
문법 구성
do <body> while <cond>
은 더 이상 지원되지 않아요. 대신 아래와 같은 동등한 while 루프를 쓰는 것을 권장해요.
while ({ <body> ; <cond> }) ()
예를 들어, 이렇게 쓰는 대신
do
i += 1
while (f(i) == 0)
이렇게 써요.
while
i += 1
f(i) == 0
do ()
블록을 while의 조건으로 쓰는 아이디어는 "루프 반과 절반(loop-and-a-half)" 문제에 대한 해법이기도 해요. 여기 또 다른 예가 있어요.
while
val x: Int = iterator.next
x >= 0
do print(".")
왜 그 구성을 제거했나? (Why Drop The Construct?)
- do-while은 상대적으로 드물게 쓰이고,
while만으로 충실하게 표현할 수 있어요. 그래서 별도의 문법 구성으로 둘 이유가 거의 없어 보여요. - 새 문법 규칙 아래에서
do는 문장 연속(statement continuation)으로 쓰이는데, 이것은 문장 시작(statement introduction)으로서의 의미와 충돌할 거예요.