사전캠프 3일차

김재현·2024년 1월 25일
post-thumbnail

오늘은 반복문에 관하여 배워보았습니다.
반복문은 코드를 반복적으로 실행하고자 할 때 사용하며 반복문에는 for와 while문 두 가지가 있습니다
for는 특정 횟수만큼 코드를 반복하기 위해 사용하고 while문은 특정 조건을 만족할 때까지 코드를 반복할 때 사용합니다.

for 반복문의 일반적인 형태는

for (변수 in 시작값..종료값){
// 실행 코드
}

이런 형태로

1부터 10까지 반복하면서 그 숫자를 index에 먼저 저장하고 횟수만큼의 for 블록의 코드가 실행됩니다.

for (index in 1..10){
Log.d("For", "현재 숫자는 $index")
}

코드는 이런식으로 됩니다.

예제를 실행해본 결과로

   for (index in 1..12) {
       Log.d("For", "현재 숫자는${index}")*
       }
        

일반적인 반복문과

    var array = arrayOf("JAN", "FEB", "MAR", "APR", "MAY")
    for (index in 0 until array.size) {
        Log.d("For", "현재 월은 ${array.get(index)} 입니다")
    }*
    

마지막 숫자를 제외하기 위해 until를 사용한 형태이고

    for (index in 0..12 step 2) {
        Log.d("For", "건너뛰기 : ${index}")
    }
    

범위 내에서 2씩 건너뛰기(step 2)를 통해 "건너뛰기 1" "건너뛰기 3" 이런식으로 출력이 된 것을 확인해 볼 수 있었다.

    for (index in 10 downTo 0) {
        Log.d("For", "감소시키기 : ${index}")
    }
    

증가하는 형태말고 감소하는 형태를 위해서는 down to 를 사용하여 숫자를 감소시키는 형태로 출력할 수 있다.

    for (index in 10 downTo 0 step 3) {
        Log.d("For", "건너뀌면서 감소시키기 : ${index}")
    }
    

위에서 건너뛰는 것과 감소하는 것을 같이 응용하여 3씩 건너뛰면서 감소시키는 것도 해보았고

    for (month in array) {
        Log.d("for", "현재 월은 ${month} 입니다")
    }
    

앞서 array배열을 통해 month를 지정해놔서 간단하게 배열 해볼 수도 있었다.

다음은 while 반복문을 알아보았는데 for 문에 비해서는 아직 많이 어려웠다...ㅠㅠ

위와 같이 예제 코드를 연습해보았고

    var current = 1
    val until = 12
    while (current < until) {
        Log.d("while", "현재값은 ${current} 입니다")
        
        current = current + 1
    }
    

가장 일반적인 while문과

    var game = 1
    val match = 6
    do {
        Log.d("while", "${game}게임 이겼습니다 우승까지 ${match - game}게임 남았습니다")
        game += 1
    } while (game < match)
    

do while문!

    for (index in 1..10) {
        Log.d("while", "break > 현재 index 는 $index 입니다")
        if (index > 5) { 
            break       
        }

반복문을 탈출하기위한 break 문도 작성을 해보았다.

간단한건 확실히 for 반복문이 좋은 것 같지만 조건이 많다면 while 반복문이 더 유용할 것 같다.
하지만 do의 사용이 while과 무슨 차이가 있는지 하는 기능이 어떻게 다른지와 do ~ while 문은 어떤 역할을 하는지 등등... 아직 이해가 되지않는 것이 많아 추가 공부가 필요할 것 같다!

0개의 댓글