본문 바로가기
프로그래밍/코틀린

K008. 코틀린 루프(반복분, Loop) 깊게 살펴보기 - While 루프

by K-인사이터 2024. 2. 3.
반응형

안녕하세요

K-IN 입니다.

 

코틀린 루프(Loop)에 대해서 알아보겠습니다. 

전체 강의 목록은 아래의 링크를 클릭해주세요.

 

K000. 코틀린 시리즈 (연재물)

안녕하세요 K-IN 입니다. 요즘 코틀린을 이용한 개발 프로젝트가 늘어나고 있습니다. 이에, 코틀린에 대해서 상세하게 정리하는 간행물을 제작하고자 합니다. 여기에 있는 링크들은 모두 코틀린

k-in.tistory.com

 

 

코틀린 루프(반복문, While) 

코틀린은 루프(반복문)을 위한 다양한 방법을 제공합니다. 

  • for 
  • while
  • do-while
  • Iterators

각각의 특징을 살펴보면서 문법에 익숙해지는 시간을 가지겠습니다. 

코틀린 루프(반복문): while

while 과 do-while 루프는 조건을 만족할 때까지 계속해서 코드블록을 실행합니다. 

이 둘의 차이점은 조건을 검사하는 시점의 차이입니다. 

 

  • while 은 코드 블록을 실행하기 전에 조건을 우선 검사합니다.
  • do-while 은 우선 코드 블록을 실행하고 조건을 검사합니다. 

따라서, do-while 은 while 와 달리 적어도 한번 코드 블록이 실행된다는 차이점이 있습니다. 

아래의 예제를 통해서 이 차이를 명확하게 이해할 수 있습니다. 

 

아래 코드에서 포인트들은 다음과 같습니다. 

  • while 루프는 조건을 우선 검사하고 조건을 만족할 경우 코드 블록을 실행
  • cakesEaten 은 0 이므로 5보다 작기때문에 조건을 만족
  • do-while 루프는 우선 코드 블록을 실행하고 조건을 검사
  • "케이크를 구운 수(cakesBaked)" < "케이크를 먹은 수(cakesEaten)" 임에도 불구하고 코드 블록이 실행
  • 1회 코드 블록이 실행된 후 조건을 검사하므로 do-while 코드 블록은 1회만 실행되고 루프가 종료
fun eatACake() = println("케이크 먹기")
fun bakeACake() = println("케이크 굽기")

fun main() {
    var cakesEaten = 0
    var cakesBaked = 0
    
    // while 루프는 조건을 우선 검사합니다. 
    while (cakesEaten < 5) {                    
        eatACake()
        cakesEaten ++
    }
    
    // do-while 루프는 적어도 한번 크드 블록이 실행되고 
    // 조건을 검사합니다. 
    // 따라서, "케이크를 구운 수(cakesBaked)" < "케이크를 먹은 수(cakesEaten"
    // 이더라도 코드가 적어도 한번 실행됩니다. 
    do {                                        
        bakeACake()
        cakesBaked++
    } while (cakesBaked > cakesEaten)

}

 

아래는 while 과 do-while 구문의 차이를 이해하기 위한 코틀린 플레이그라운드입니다. 

여러분이 원하는 방향대로 코드를 변경하고 실행하면서 차이를 이해해보시길 바랍니다. 

 

 

이상입니다.

K-IN 올림. 

반응형