[Kotlin][4]코틀린 timer 함수 기본 사용법과 println, print의 차이에 대하여

반응형

    메인이미지
    메인이미지

    안녕하세요.

    오랜만에 코틀린 강좌로 다시 찾아왔습니다.

    한동안 프로그래밍 관련 강좌를 하지 않았었는데 그 이유는 어떤 것을 먼저 설명해드리면 좋을 지 몰라서 그랬어요.

    그런데 안드로이드 강좌를 진행하다 보니 그때그때 필요한 내용들을 설명하고 나중에 이것들을 정리하는 것이 좋겠다고 느껴서 순번이 다소 뒤틀리더라도 이렇게 강좌를 작성하기로 하였습니다.

     

    오늘 소개해드릴 것은 일정 주기로 블록 안의 코드를 실행하는 timer 함수와 저번에 마저 설명하지 못했던 printprintln의 차이점에 대해서 설명해 드리도록 하겠습니다.

     

    1. timer 함수의 사용 방법

    타이머 함수를 사용하기 위해서는 코틀린의 타이머 라이브러리를 추가해주어야 합니다.

    Import kotlin.concurrent.timer

    위 코드로 추가할 수 있죠.

    하지만 사실 코틀린의 경우 해당 함수를 사용할 때 tab을 눌러 자동 완성 시켜주면 알아서 필요한 라이브러리를 추가해주기 때문에 따로 어떻게 불러와야 되는지 기억하지 않아도 됩니다.

     

    timer함수를 선언할 때 넘겨줄 수 있는 값이 총 5개 있는데 아래 표로 설명해보도록 하겠습니다.

    Crossline에 대해서는 향후 필요할 때 따로 설명해드리도록 하겠습니다.

    name : String

    daemon : Boolean

    inintialdelay : Long

    period : Long(필수)

    타이머 함수를 실행하는데 필요한 쓰레드의 이름입니다.

    (기본값 : NULL)

    만약 참이라면 이 쓰레드는 데몬(daemon)쓰레드로 시작합니다.

    (기본값 : true)

    타이머 함수를 실행하기 까지의 지연시간을 설정합니다.

    (기본값 : 0, 단위 : ms)

    함수 안 코드를 실행하는 주기를 설정함

    (기본값 : 없음, 단위 : ms)

     

    위에서 확인할 수 있으시겠지만 타이머 함수는 period 값 외에는 필요할 때를 제외하고 구지 다

    른 값을 넣어줄 필요는 없습니다.

    추가로 넣어주는 수의 단위가 밀리세컨드(ms : 1/1000)이기 때문에 1000을 넣어주면 1초로 설정 되는 거에요.

     

    그럼 한번 timer함수를 불러와 보도록 합시다.

    import kotlin.concurrent.timer
    
     
    
    fun main()
    
    {
    
        var second : Int = 0
    
        timer(period = 1000,initialDelay = 1000)
    
        {
    
            second++
    
            print(second)
    
        }
    
    }

    위의 코드는

    1. 타이머 라이브러리를 불러온 뒤
    2. second 변수를 선언하여 0을 저장한 뒤

    3. 타이머 함수를 불러와 주기와 지연시간을 각각 1초로 설정

    4. 1초마다 second변수의 값은 1씩 증가시키고 콘솔창에 출력

    의 과정을 실행하는 코드입니다.

     

    실행한 사진을 보여드리겠습니다.

    실행 사진
    실행 사진

    타이머를 실행하는 방법을 알았으니 이번엔 종료하는 방법도 알아보겠습니다.

    timer함수는 함수의 코드 블럭 내에서 cancel()을 호출함으로 종료할 수 있어요.

    예를 들면 if문을 이용하여 second의 값이 10에 도달하면 자동으로 종료하게끔 설정할 수도 있겠죠.

    아래 코드는 그 예입니다.

    import kotlin.concurrent.timer
    
    fun main()
    {
        timer(period = 1000,initialDelay = 1000)
        {
            second++
            print(second)
            if (second==10)
            {cancel();print("타이머 종료")}
        }
        return
    }

    타이머 실행 사진
    타이머 실행 사진

    위 사진처럼 second10에 도달하자 타이머가 멈추는 것을 볼 수 있습니다.

    일정시간이 지나면 종료되는 점은 초시계를 코딩할 때나 다른 필요한 곳에서 굉장히 편리하게 사용할 수 있겠죠?

     

    rintlnprint의 차이점

    타이머 설명은 여기까지 하고 printlnprint의 차이점에 대해서 알아보도록 하겠습니다.

    사실 큰 차이는 없지만 한가지 편리한 점이 있어요.

    println=(print line)

    print

    내용 출력을 완료하고 커서를 다음 줄로 넘김

    내용을 출력한 뒤 커서를 현재 줄에 유지

    어때요 정말 사소한 차이죠?

    위의 타이머 코드를 println을 사용한 코드로 바꾸면 이렇게 출력됩니다.

    println예제
    println예제 사진


    이상으로 강좌는 여기까지 하도록 하고 마치도록하죠.

    다음 강좌는 사용자의 입력을 받는 방법에 대해 알아보도록 하겠습니다.

    그이후 키보드 입력을 받아 해당 시간만큼 스톱워치를 돌리는 프로그램을 만들어 보겠습니다.

    그럼 기대해주세요.

    긴 글 읽어 주셔서 감사드리고 다음에 더 나은 내용으로 찾아 뵙겠습니다.


    이전 글 읽기

     

    [Kotlin][3]코틀린 자료형 선언 방법 및 nullable 변수 만드는 방법

    안녕하세요. 지난번 코틀린 프로젝트 생성에 이어서 오늘은 자료형을 선언하고 nullable 변수를 만드는 방법에 대해 알아볼까 합니다. 그럼 바로 시작하도록 하죠. 코틀린 변수 선언 방법 먼저 코틀린에서 일반적..

    postiveemblem.tistory.com

    이전 글 읽기

     

    [Kotlin][2]코틀린 ide 설치 및 신규 프로젝트 생성방법

    안녕하세요. 저번의 “코틀린 꼭 배워야 할까?”에 이어서 코틀린을 위한 IDE를 설치하는 방법과 코틀린의 신규 프로젝트를 만들고 간단한 코드를 실행해보는 것까지 진행해볼까 합니다. 그럼 긴말하지..

    postiveemblem.tistory.com


    이 글의 저작권은 전적으로 작성자인 P_Emblem에게 있으며
    허락없는 사용을 금합니다.

    댓글

    Designed by JB FACTORY