[Kotlin][5]코틀린 readline()과 자료형 변환 방법

코틀린 readline과 자료형 변환 방법 메인 이미지
코틀린 readline과 자료형 변환 방법

안녕하세요. 오늘은 지난 포스팅에서 다루었던 타이머 함수 사용법에 이어, 코틀린에서 readLine()을 이용해 사용자로부터 입력을 받는 방법을 알아보겠습니다.

사용자로부터 입력받은 모든 값은 기본적으로 문자열(String)로 반환됩니다. 따라서 숫자를 입력받아 계산에 활용하기 위해서는 별도의 자료형 변환 과정이 필요한데요. 이번 포스팅에서 그 방법까지 함께 정리해 보겠습니다.

설명할 내용이 복잡하지 않으니 가볍게 읽어보시면 바로 실무에 적용하실 수 있을 겁니다. 바로 시작하시죠.

1. readLine() 함수 기본 사용법

readLine()은 이전에 살펴본 타이머 함수와 달리 별도의 라이브러리 임포트(Import) 없이도 즉시 사용이 가능합니다. 변수를 선언할 때 readLine()을 할당하면 사용자가 콘솔에 입력한 값을 변수에 저장할 수 있습니다.

fun main() {
    print("이름을 입력해주세요. : ")
    val name = readLine()
    println("당신의 이름은 $name 입니다.")

    print("당신의 나이는? : ")
    val year = readLine()!!.toInt()
    println("당신의 나이는 $year 입니다.")
}

위 코드에서 보시는 것처럼 nameyear 변수에 각각 값을 입력받은 뒤, $name$year와 같은 변수 참조 방식을 통해 출력하고 있습니다.

readLine 함수 실행 결과 예시
readLine() 함수 실행 결과

실행 결과, 입력한 내용이 정상적으로 출력되는 것을 확인할 수 있습니다. 이제 입력받은 문자열을 다른 자료형으로 변환하는 상세한 방법을 알아보겠습니다.

2. 자료형 변환 메서드 정리

readLine()으로 받은 데이터는 어떤 형태든 String 타입으로 반환됩니다. 이를 숫자 계산 등에 활용하려면 반드시 형변환을 거쳐야 합니다. 자주 사용하는 자료형 변환 메서드는 다음과 같습니다.

메서드설명
toInt()Int 정수형으로 변환
toDouble()Double 실수형으로 변환
toFloat()Float 실수형으로 변환
toLong()Long 정수형으로 변환
toString()문자열로 변환

사용법은 매우 간단합니다. [변환할 값].toInt()와 같은 방식으로 작성하면 됩니다. 아래 예제 코드를 참고해 보세요.

fun main() {
    print("첫 번째 숫자를 입력해주세요. : ")
    val a = readLine()!!.toInt()
    
    print("두 번째 숫자를 입력해주세요. : ")
    val b = readLine()!!.toInt()
    
    var c = a * b
    println("$a * $b = $c")
}

여기서 readLine() 뒤에 붙은 ‘!!’는 해당 값이 절대 NULL이 아님을 보장한다는 의미입니다. 코틀린은 안정성을 위해 값이 입력되지 않을 가능성(NULL)을 경고하는데, ‘!!’를 사용하면 “값이 반드시 들어올 것이니 걱정 마”라고 컴파일러에게 알려주는 역할을 합니다.

참고로 ‘?’를 사용하면 “NULL일 수도 있으니 상황에 맞춰 처리해라”라는 의미가 됩니다.

숫자 입력 및 곱셈 계산 결과 화면
입력받은 숫자 데이터 변환 후 계산 결과

위 사진은 코드를 실행시켜본 결과입니다. 입력받은 문자열이 정수형으로 정상 변환되어 사칙연산이 수행된 것을 볼 수 있습니다.


오늘은 코틀린의 readLine()을 이용한 입력 방법과 자료형 변환에 대해 알아보았습니다. 기초적인 내용이지만 데이터를 다루는 프로그램 개발의 필수적인 단계입니다.

다음 시간에는 오늘 배운 입력값 처리를 활용하여, 사용자가 설정한 시간만큼 작동하는 타이머 프로그램을 직접 만들어 보겠습니다. 긴 글 읽어주셔서 감사합니다!

코틀린 강좌 이전 글 보기

이 글의 저작권은 전적으로 작성자인 P_Emblem에게 있으며
허락 없는 무단 전재 및 재배포를 금합니다.

위로 스크롤