3) 조건문과 반복문

SOCICAL·2024년 6월 20일

android

목록 보기
17/20
post-thumbnail

# 조건문

- if문

Kotlin의 if 문은 Java와 동일하게 사용된다.

fun main() {
    var a = 7
    if (a > 10) {
        println("a는 10보다 크다")
    } else {
        println("a는 10보다 작거나 같다")
    }
}

- is: 데이터 타입 비교

fun main() {
    var a: Any = 1

    if (a is Int) {
        println("int")
    }

    if (a is String) {
        println("string")
    }
}
// 출력 결과: int

- when 문

다른 언어의 switch 문을 Kotlin 에서는 when으로 사용한다. Any 자료형은 어떤 자료형이든 호환되는 Kotlin의 최상위 자료형이다.

fun main() {
    doWhen(12L)
}

fun doWhen(a: Any) {
    when (a) {
        1 -> println("정수 1이다")
        "DiMo" -> println("디모의 코틀린 강좌")
        is Long -> println("Long 타입이다")
        !is String -> println("String 타입이 아니다")
        else -> println("어떤 조건도 만족하지 않는다")
    }
}
// 실행 결과: Long 타입이다.

when을 표현식으로 사용할 때는 값을 변환할 수 있다.

fun main() {
    doWhen(12L)
}

fun doWhen(a: Any) {
    val result = when (a) {
        1 -> "정수 1"
        "DiMo" -> "디모의 코틀린"
        is Long -> "Long 타입"
        !is String -> "String 타입 아니다"
        else -> "어떤 조건도 만족하지 않는다"
    }
    println(result)
}

# 반복문

- 조건형 반복문

조건이 참인 경우 반복을 유지한다 (while, do...while).

- 범위형 반복문

반복 범위를 정해 반복을 수행한다 (for).

- while 문

fun main() {
    var a = 0

    while (a < 5) {
        println(a++)
    }
}
// 실행 결과: 0 1 2 3 4

- do...while 문

최초 한 번은 조건 없이 do 구문을 실행한 후 while로 조건을 체크한다.

fun main() {
    var a = 0

    do {
        println(a++)
    } while (a < 5)
}

- for 문

값을 1씩 증가시키며 반복합니다.

fun main() {
    // 0~3까지 반복
    for (i in 0..3) {
        print("$i ")
    }

    println()

    // 3~0까지 반복
    for (i in 3 downTo 0) {
        print("$i ")
    }

    println()
  
    // 0~5까지 2 단위로 반복
    for (i in 0..5 step 2) {
        print("$i ")
    }

    println()

    // a~e까지 출력
    for (i in 'a'..'e') {
        print("$i ")
    }
}
// 실행 결과: 
// 0 1 2 3 
// 3 2 1 0 
// 0 2 4 
// a b c d e 

# 흐름제어

- break

fun main() {
    for (i in 1..10) {
        if (i == 3) break
        print(i)
    }
}
// 실행 결과: 12

- continue

fun main() {
    for (i in 1..10) {
        if (i == 3) continue
        print(i)
    }
}
// 실행 결과: 1245678910

- 라벨을 통한 흐름 제어

다중 반복문에서 breakcontinue가 적용되는 반복문을 라벨을 통해 지정할 수 있습니다.

fun main() {
    loop@ for (i in 1..10) {
        for (j in 1..10) {
            if (i == 1 && j == 2) break@loop
            println("i: $i, j: $j")
        }
    }
}
// 실행 결과: i: 1, j: 1

0개의 댓글