[Kotlin][6]코틀린 타이머 만드는 방법[강좌]
- Programming/Kotlin
- 2020. 4. 7.
안녕하세요.
오늘은 저번 포스팅까지 배운 내용을 바탕으로 사용자의 입력만큼 초시계를 돌리는 타이머를 만들어 볼 겁니다.
그럼 바로 한번 시작해 보도록 하죠.
타이머 만드는 방법
일단 설명하기에 앞서 제가 만든 타이머 코드를 보여드리겠습니다.
그 후 한줄 한줄 설명해드리도록 할 거에요.
import kotlin.concurrent.timer
fun main()
{
var inputtedData : String?
var minute = 0
var second = 0
do {
print("시간을 입력해주세요.(분) : ")
inputtedData = readLine()
}while (inputtedData!!.isEmpty()||inputtedData.toInt()<0||inputtedData.toInt()>=60)
minute = inputtedData.toInt()
timer(period = 1000) {
print(String.format("\n%02d : %02d",minute,second))
if (second==0&&minute==0) {
println("\n타이머 종료")
cancel()
}
if (second == 0) {
minute--;
second = 60;
}
second--
}
return
}
위 코드가 타이머 타이머 프로그램의 코드이고 사용자에게 1부터 60까지의 숫자를 입력 받아 1초씩 감소시키며 작동합니다.
import kotlin.concurrent.timer
fun main()
timer함수를 사용하기 위해 코틀린의 타이머 라이브러리를 추가시킨 뒤 메인 함수를 선언해 줬습니다.
var inputtedData : String?
var minute = 0
var second = 0
그런 뒤 사용자의 입력을 저장할 변수 [inputtedData]를 생성하고 String? 자료형으로 지정해줬어요.
‘?’를 붙인 이유는 [inputtedData]라는 변수에 null값이 들어갈 수 있게 하기 위함 입니다.
그후 [minute], [second] 변수를 생성하고 0값으로 초기화한후 int형으로 지정해주죠.
(코틀린에서는 자료형 선언을 하지 않아도 저장되는 데이터에 따라 컴파일러가 자료형을 지정해줍니다.)
do {
print("시간을 입력해주세요.(분) : ")
inputtedData = readLine()
}while (inputtedData!!.isEmpty()||inputtedData.toInt()<0||inputtedData.toInt()>=60)
minute = inputtedData.toInt()
이후 반복문 do/while()을 사용하여 코드 블럭을 만들어주고 그 안에 readline()을 이용해 [inputtedData]변수에 입력 받은 값을 넘겨줍니다.
받은 데이터가 비어 있을 경우 오류가 날 수 있기 때문에 [inputtedData]의 문자열이 비었는지 확인하는 isEmpty()이용하여 조건을 걸어줘야겠죠?
(isEmpty()는 문자열이 비었으면 참, 아니면 거짓을 반환함니다)
(자매품으로 isNotEmpty()가 있습니다.)
그리고 입력된 숫자가 음수이거나 60보다 크면 안되므로 조건을 추가해줍니다.
위의 과정을 거친 데이터를 [minute]변수에 넣어줘요.
timer(period = 1000) {
print(String.format("\n%02d : %02d",minute,second))
if (second==0&&minute==0) {
println("\n타이머 종료")
cancel()
}
if (second == 0) {
minute--;
second = 60;
}
second--
}
그런 뒤 타이머 함수를 불러오고 주기(period)를 1000으로 설정해줍니다.
타이머 함수의 코드 블럭 안에 print()를 이용해서 시간과 초를 표시해줍니다.
이때 String.format()를 이용해서 입력해주면 c언어에서 printf를 사용하는 것과 똑같이 사용하실 수 있습니다.
분이나 초가 한자리 숫자가 되도 00 : 00 꼴로 출력 시키기 위해 %02d를 이용해 줬어요.
이후 if()문을 이용해 분과 초가 모두 0이되면 타이머가 종료하도록 초만 0이되면 분의 단위를 1 낮추고 [second]변수의 값을 60으로 초기화 하게끔 했습니다.
그리고 타이머가 반복될 때마다 위의 과정을 거친 후 초를 1단위씩 낮추도록 했죠.
이렇게 마무리 지으면 타이머가 완성됩니다.
아래는 위 코드의 실행 사진입니다.
이렇게 오늘은 코틀린 코딩을 이용해서 타이머를 만들어 봤습니다.
다음 포스팅은 아마 제 블로그의 안드로이드 코딩으로 넘어가서 타이머 어플을 만드는 것에 대한 내용일 것 같아요.
그럼 저는 다음에 더 나은 내용으로 찾아 뵙겠습니다.
긴 글 읽어주셔서 감사해요.
이 글의 저작권은 전적으로 작성자인 P_Emblem에게 있으며
허락없는 사용을 금합니다.
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin][8]코틀린 클래스 생성자 오버로딩 – constructor (0) | 2021.01.19 |
---|---|
[Kotlin][7]코틀린에서 클래스 생성 및 생성자 만드는 방법 init() - 코틀린 클래스[1] (0) | 2021.01.17 |
[Kotlin][5]코틀린 readline()과 자료형 변환 방법 (0) | 2020.04.06 |
[Kotlin][4]코틀린 timer 함수 기본 사용법과 println, print의 차이에 대하여 (0) | 2020.04.05 |
[Kotlin][3]코틀린 자료형 선언 방법 및 nullable 변수 만드는 방법 (0) | 2020.01.02 |
[Kotlin][2]코틀린 ide 설치 및 신규 프로젝트 생성방법 (0) | 2019.11.06 |