//Control flow
//conditional expreesions
//kotlin은 if 와 when을 조건표현으로 제공한다.
fun main() {
    //if를 사용하면 소괄호()안에 조건을 주고 tru일 경우 {}안에 코드를 실행한다.
    val d: Int
    val check = true

    if (check) {
        d = 1
    } else {
        d = 2
    }

    println(d)

    //코틀린에는 3항 연산자는 없다.
    //대신 if를 {}없이 사용할 수 있다.

    val a = 1
    val b = 2
    println(if (a > b) a else b)

    //when은 조건절인데 여러 개의 조건을 비교할 수 있다. 약간 swich같은 느낌
    val obj = "Hello"

    when (obj) {
        "1" -> println("One")
        "Hello" -> println("Greeting")
        //"Hello" -> println("Greeting2") // 이건 실행 안됨
        else -> println("Unknown")
    }
    //만족하는 분기문을 순차적으로 실행하므로 만족한 1개만 실행된다는 것에 유의.

    //when을 이용했을 때 변수에 바로 할당된다.
    val result = when (obj) {
        "1" -> "One"
        "Hello" -> "Greeting"
        else -> "Unknown"
    }
    println(result)

    //Boolean절을 여러 개 체크 하는 경우에도 유용하다.
    val temp = 18

    val description = when {
        temp < 0 -> "very cold"
        temp < 10 -> "a bit cold"
        temp < 20 -> "warm"
        else -> "hot"
    }
    println(description)

    //Ranges
    //가장 일반적으로 범위를 만드는 경우에 ..operator를 사용한다.
    //1..4 는 1,2,3,4와 같다.
    //마지막을 포함하지 않게 선언하고 싶으면 ..<를 사용한다.
    //1..<4 는 1,2,3과 같다.
    //역순으로 선언할 때는 downTo를 사용한다.
    //4 downTo 1은 4,3,2,1과 같다.
    //1이 아닌 증가량의 범위를 선언하고 싶으면 step을 사용한다.
    //1..5 step 2는 1,3,5와 같음
    //Char에서도 사용 가능하다.
    //'a'..'d'는 'a','b','c','d'와 같다.
    //'z' downTo 's' step 2는 'z', 'x', 'v', 't'이다.

    //Loops
    //가장 흔한 loop structures로 for과 while이 있음.
    //for은 반복하면서 action을 수행하는 것이고,
    //while은 특정한 조건이 만족될때까지 action을 수행함.

    //for
    //for loop를 통해 정해진 범위를 반복할 수 있음.
    for (number in 1..5) {
        print(number)
    }
    println()

    //Collection에서도 loop를 통해 반복될 수 있다.
    val cakes = listOf("carrot", "cheese", "chocolate")

    for (cake in cakes) {
        println("Yummy, it's a $cake cake!")
    }

    //while은 두 방법으로 사용될 수 있다.
    //1. 조건절이 참일 경우 실행: while
    //2. 코드블록을 먼저 실행하고 그 다음에 조건절을 체크한다.: do-while
    var cakesEaten = 0
    var cakesBaked = 0
    while (cakesEaten < 3) {
        println("Eat a cake")
        cakesEaten++
    }
    do {
        println("Bakes a cake")
        cakesBaked++
    } while (cakesBaked < cakesEaten)

}

https://kotlinlang.org/docs/kotlin-tour-control-flow.html

 

Control flow | Kotlin

 

kotlinlang.org

 

Exercise 3 Fizz buzz game

fun main() {
    for(number in 1..100){
        val result = when {
            number % 3 == 0 && number % 5 == 0 -> "fizzbuzz"
            number % 3 == 0 -> "fizz"
            number % 5 == 0 -> "buzz"
            else -> number
        }
        println(result)
    }
}

'정보 > Language' 카테고리의 다른 글

[Javascript] Object, Array  (0) 2024.01.09
Kotlin: Functions  (0) 2023.08.02
Kotlin : Hello, world!  (0) 2023.07.20
Enum을 사용한 메뉴관리  (0) 2022.08.26
java.util.HashMap  (0) 2022.07.29

+ Recent posts