파트 2: Kotlin을 사용한 제어 흐름

8381 단어

동기 부여



이 문서는 작업 또는 일부 흥미로운 프로젝트를 위해 Kotlin 언어를 빠르게 이해하려는 고급 개발자를 위해 작성되었습니다.

긴 시리즈의 2부인 이 기사에서는 설치, 기본 구문 및 기능에 대한 빠른 소개를 다룹니다.
  • 파트 1:
  • 파트 2: Kotlin의 제어 흐름
  • 3부: Kotlin의 루프 및 예외(출시 예정)

  • Note : I do use a For-Loop in this article to simulate draws from a finite sequence from 0 to 10 but the syntax is relatively similar to other languages.



    Kotlin의 제어 흐름



    Kotlin에는 결정을 내릴 때 사용할 수 있는 두 가지 주요 구조가 있습니다.

    다른 경우라면



    첫 번째는 아래 예제에서 볼 수 있는 if-else 구문입니다.

    fun main(){
        val controlling:Int = 3;
    
        if(controlling < 4){
            println("The Value is less than 4")
        }
        else{
            println("The value is larger than 4")
        }
    }
    


    별로 유용하지 않은 것 같으니 kotlinrandom 패키지를 사용하는 대신 무작위로 4개의 숫자를 생성하는 간단한 예를 들어보겠습니다.

    import kotlin.random.Random
    
    fun main(){
        var controlling:Int;
        for( i in 1..4){
            controlling = (0..10).random()
            if(controlling < 4){
                println("The Value of $controlling is less than 4")
            }
            else{
                println("The value of $controlling is larger than 4")
            }
        }
    }
    


    더 단순화할 수 있는

    import kotlin.random.Random
    
    fun main(){
        var controlling:Int;
        for( i in 1..4){
            controlling = (0..10).random()
            println(
                "The value of $controlling is ${
                    if(controlling > 4) "greater" else "less"
                } than 4"
            )
        }
    }
    


    이것은 차례로 동일한 출력을 제공합니다.

    The value of 7 is greater than 4
    The value of 10 is greater than 4
    The value of 5 is greater than 4
    The value of 8 is greater than 4
    


    언제 사용합니까? :)



    이 논리를 표현하는 또 다른 가능한 방법은 when 구문을 사용하는 것입니다.

    import kotlin.random.Random
    
    
    fun main(){
        var controlling:Int;
        for( i in 1..4){
            controlling = (0..10).random()
            when(controlling){
                in 0..4 -> println("$controlling is less than or equal to 4")
                in 5..10 -> println("$controlling is greater than 4")
                else -> println("Unsupported Number")
            }
        }
    }
    


    이 논리를 조금 살펴보겠습니다.
  • 우리는 (0...10).random()0에서 10 범위 내의 숫자를 생성한다는 것을 알고 있습니다. 이것은 010 를 얻을 수 있음을 의미하는 포괄적인 범위입니다. *따라서 이 범위 내에 있는 숫자에 대해서만 일치해야 한다는 것을 알고 있습니다. *
  • 4보다 작거나 같은 숫자를 얻으면 "4보다 작음"을 인쇄하고 그렇지 않으면 "4보다 큼"을 인쇄합니다. 이것은 본질적으로 숫자를 두 개의 분리된 집합 또는 그룹으로 나누는 것을 의미합니다.

  • 이들은 두 그룹

    1,2,3,4 ( 1..4 로 표현 )
    5,6,7,8,9,10 (5..10으로 표현)
  • 따라서 when 루프를 사용하여 간단하게 다시 작성하여 양쪽의 멤버십을 확인할 수 있습니다.

  • In general, I find that When is more useful when you have more than two or three choices to make.


    When를 사용할 때 기억해야 할 몇 가지 유용한 속기 구문은 아래에서 볼 수 있습니다.
  • 유한한 수의 개별 옵션

  • 먼저 위의 원래 예제를 다시 작성하여 , 구문을 활용해 보겠습니다. 이제 in 키워드를 사용하지 않습니다.

    import kotlin.random.Random
    
    
    fun main(){
        var controlling:Int;
        for( i in 1..4){
            println(i)
            controlling = (0..10).random()
            when(controlling){
                0,1,2,3,4 -> println("$controlling is less than or equal to 4")
                5,6,7,8,9,10 -> println("$controlling is greater than 4")
                else -> println("Unsupported Number")
            }
        }
    }
    


    예 2. 여러 조건

    사용자가 주어진 사용자 이름이나 암호를 기반으로 로그인할 수 있는지 확인하는 데 도움이 되는 짧은 스니펫을 작성해 보겠습니다.

    Note : We could easily replace the following with an if-else loop if you prefer. Personally, I think this boils down to a matter of preference, When is just cleaner in general to me.



    
    fun main(){
        val correct_username = "john.smith"
        val correct_password = "applebees"
    
        val username_attempts = listOf(
            "antique","john.smith","john.smith"
        )
    
        val password_attempts = listOf(
            "applebees","apples","applebees"
        )
    
        for(i in 0..2){
    
            when{
                correct_password == password_attempts[i] && correct_username == username_attempts[i] -> println("Login Succesful")
                correct_username != username_attempts[i] -> println("Wrong Username")
                correct_password != password_attempts[i] -> println("Wrong Password")
                else -> println("Horrible Attempt")
            }
        }
    }
    


    결론



    Kotlin은 사용자 입력을 처리하고 코드에서 논리를 구현하는 데 도움이 되는 두 가지 유용한 구성을 제공합니다. 다음 기사에서는 루프를 사용하여 중복 코드를 줄이는 방법을 살펴보겠습니다!

    좋은 웹페이지 즐겨찾기