3.4.1 while과 do-while 루프
사용자가 입력한 정수의 합계를 구하고 싶다고 하자. 사용자가 입력한 값을 읽어서 0이면 루프를 끝내고 합계를 표시하기로 약속하자.
fun main() { var sum = 0 var num do { num = readLine()!!.toInt() sum += num } while (num != 0) println("Sum: $sum") }
do-while 루프는 다음 규칙에 따라 평가된다.
1. do와 while 키워드 사이에 있는 루프 몸통을 실행한다.
2. while 키워드 다음에 있는 조건을 평가한다. 이 값이 참이면 1번 단계로 되돌아가고, 이 값이 거짓이면 루프 문 다음에 있는 문을 실행한다.
루프 몸통을 실행한 다음에 조건을 검사하므로 루프 몸통이 최소 한 번은 실행된다는 사실에 유의하자.
while 문의 경우는 어떤 조건이 참인 동안 루프를 실행하지만 루프 몸통을 실행하기 전에 조건을 먼저 검사한다. 이 경우 처음부터 조건이 거짓이면 루프 몸통이 한 번도 실행되지 않는다.