본문 바로가기

Coding/Kotlin(코틀린)

[Kotlin] 코틀린 기본 문법 정리 3 - 조건문, 반복문

1. 조건문

fun main() {
    var i = 5

    if (i > 10) {
        println("i는 10보다 크다")
    } else if (i > 5) {
        println("i는 5보다 크다")
    } else {
        println("i는 5보다 작다")
    }
}

 

조건문은 자바랑 똑같이 if, else문을 사용해서 나타낼 수 있다.

if문은 when 문으로 그대로 치환이 가능한데, when 문은 자바의 select문과 흡사하지만 굉장히 강력한 조건을 만들 수 있다.

 

    when {
        i > 10 -> {
            println("i는 10보다 크다")
        }
        i > 5 -> {
            println("i는 5보다 크다")
        }
        else -> {
            println("i는 5보다 작다")
        }
    }

 

Alt+Enter 키워드를 사용해서 호환이 가능!

 

fun main() {
    var i = 5

    var result = if (i > 10) {
        "i는 10보다 크다"
    } else if (i > 5) {
        "i는 5보다 크다"
    } else {
        "i는 5보다 작다"
    }

    println(result)
}

 

일반적으로 if-else문을 사용해서 print하는 것보다 어떤 결과물을 return하는 케이스가 많다.

if문 안에 마지막 문은 return이 되기 때문에 이렇게 앞에서 식으로 받아줄 수 있다.

자바에서는 if문 자체가 값으로 치환이 안되기 때문에 불가능하지만 코틀린에서는 가능하다!

 

자바에서의 삼항 연산자처럼 사용 가능한 if문이라 보면 된다.

 

 

 

2. 반복문

 

1. list 반복

fun main() {

    val items = listOf(1, 2, 3, 4, 5) // 리스트 생성

    for (item in items) {
        println(item)
    }
}

 

list를 for문으로 반복할 때는 이렇게 사용한다.

    items.forEach { item ->
        println(item)
    }

 

이걸 for each를 사용하는 방식으로 고칠 수 있다!

 

 

 

2. n까지 반복

for (i in 0..n) {} // n까지 반복
for (i in 0..n step 2) {} // n까지 2만큼 띄워서 반복
for (i in 10 downTo 1) {} // 10에서 1까지 반복
for (i in 0 until 100) {} // 0-99까지 반복

 

일반적으로 for문에서 0부터 n까지 지정해서 쓰는 for문은 이렇게 사용한다.

이 방식으로도 list를 반복할 수 있는데, 그러기 위해선 n 자리에 size 함수로 리스트의 길이 값을 구해서 넣어주면 된다.

 

예) items.size

 

그러고나선 내부에서 리스트[i]로 사용해서 인덱스로 접근할 수 있지만 이건 for-each문보다 훨씬 불편하니 리스트를 반복할때는 되도록 for-each문을 사용하자.

 

while문, break문, continue문은 자바와 완전 동일하다.

 

 

3. index와 함께 반복

for ((index, name) in students.withIndex()) {} // index와 함께 반복


input.forEachIndexed {index, num -> // for-each로 index와 함께 반복
	// 반복할 문장 
}

 

index와 함께 반복하고 싶을때는 이렇게 하면 된다. 배열에 withIndex를 사용해서 반복하면 된다.

for-each문에서는 forEachIndexed 함수를 사용하면 끝!