더북(TheBook)

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. dowhile 키워드 사이에 있는 루프 몸통을 실행한다.

2. while 키워드 다음에 있는 조건을 평가한다. 이 값이 참이면 1번 단계로 되돌아가고, 이 값이 거짓이면 루프 문 다음에 있는 문을 실행한다.

 

루프 몸통을 실행한 다음에 조건을 검사하므로 루프 몸통이 최소 한 번은 실행된다는 사실에 유의하자.

while 문의 경우는 어떤 조건이 참인 동안 루프를 실행하지만 루프 몸통을 실행하기 전에 조건을 먼저 검사한다. 이 경우 처음부터 조건이 거짓이면 루프 몸통이 한 번도 실행되지 않는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.