F.R.I.D.A.Y.

Kotlin: 02 변수와 자료형 본문

DEV/Kotlin

Kotlin: 02 변수와 자료형

F.R.I.D.A.Y. 2020. 3. 23. 22:46
반응형

 이전 시간에는 프로그래밍을 할 수 있는 환경을 조성했습니다. 오늘은 코틀린에서 제공하는 변수와 자료형을 알아봅니다.

 

 기본적으로 C언어를 주로 이용했다 보니, 설명을 C언어에 비교하여 설명할 수 있습니다.


변수

 우리가 물건을 사기 위해 리스트를 작성한다고 해봅니다. 그렇다면 리스트를 작성하기 위한 메모장이 필요할 텐데요, 이 메모장을 프로그램에서는 변수라고 생각할 수 있습니다.

선언

 코틀린 프로그래밍에서는 변수를 선언할 수 있는 방법은 다음과 같습니다.

val hello1: String = "Hello world!(1)"
var hello2: String = "Hello world!(2)"

 val로 선언하는 방법과 var로 선언하는 방법 두 가지가 존재하는데 두 방법의 차이는 변수의 값을 변경할 수 있느냐 없느냐의 차이입니다. 마치 C언어의 일반 변수와 const 변수를 보는 것과 같죠.

 

 위 선언에서는 변수명 뒤에 콜론을 작성하고 추가로 자료형을 작성해주었는데요, 코틀린은 자료형 추측을 할 수 있기 때문에 String을 작성하지 않고 아래와 같이 이용할 수도 있습니다.

var hello3 = "Hello world!(3)"

 개인적으론 이렇게 작성하는 것보다는 자료형을 함께 작성해주는 것이 이후 제품을 만들 때 디버깅 등에서 더 이점이 많을 것이라 생각합니다.

 

 한 가지 더, 코틀린에서 나중에 사용하려고 미리 선언만 하고 초기화를 하지 않은 변수는 꼭 자료형을 작성해주어야 합니다.

var str:String

str="this variables have string data"

 이렇게 말이죠.


자료형

 코틀린은 정적 타입 언어(Static Type Language)입니다. Javascript와 같이 자료형을 지정해주지 않아도 되는 것이 아닙니다. 위에서 변수 선언 때 타입을 작성해주지 않아도 되었던 것은 컴파일러가 초기화 값에서 자료형을 추론했기에 가능했던 것입니다.

숫자 자료형

 가장 기본적인 자료형입니다. 컴퓨터 하면 계산이 생각나죠. 숫자를 저장하는 자료형에는 크게 두 종류가 존재합니다.

정수 자료형

 정수 자료형은 아래와 같습니다. 이 자료형들은 부호를 갖추고 있으며 부호를 가지고 있기 때문에 최댓값이 부호를 가지지 않은 값보다 절반이 작습니다.

자료형 크기
Long 8바이트
Int 4바이트
Short 2바이트
Byte 1바이트

 부호를 가지지 않는 unsigned 자료형은 아래와 같습니다. 부호를 가진 자료형에서 unsigned의 U를 더해 이름이 명명되었습니다.

자료형 크기
ULong 8바이트
UInt 4바이트
UShort 2바이트
UByte 1바이트
더보기

# 코틀린 v1.3이 아니라면 참고하세요

 부호 없는 자료형의 경우에는 코틀린 1.3에서의 시험적 기능[# 자세한 내용은 코틀린 정식 문서를 참고하세요.]입니다. 따라서 버전업이 되었을 때 사라질 수 있다는 말이지요. 만일 본인이 여러 사람들에게 배포하고 싶은 프로그램을 만들 예정이라면 이 자료형을 이용할 때는 주의해야겠네요.

 

 동시에, 우리가 사용하는 goorm에서는 코트린 버전이 1.3보다 낮습니다. 따라서 이 자료형들은 사용할 수 없어요.

Kotlin 프로젝트 생성 당시 하단에 버전이 표시되어 있음

 C 언어에서와 마찬가지로 코틀린에서도 상수에 접미어를 붙여 자료형을 확장할 수 있습니다. 정수의 기본형은 Int입니다. 만일 아래와 같이 Long범위로 표현하지 않아도 되는 값을 자료형 추상으로 변수의 크기를 Long으로 맞추려면 뒤에 L을 붙이면 됩니다.

var i1 = 65535  // type: Int
var i2 = 65535L // type: Long, 접미어 L을 통해 i2의 자료형이 Long으로 선언됨

 Long의 접미사 L은 대문자로 작성해야합니다. 그렇지 않으면 오류를 출력합니다.

goorm에서 컴파일 한 모습

실수 자료형

 실수를 표현하기 위해서는 실수 자료형을 이용해야 합니다. 두 가지가 존재하네요.

자료형 크기
Double 8바이트
Float 4바이트

 실수형의 기본형은 Double이기 때문에 접미어 F를 붙이지 않은 모든 실수 값은 Double로 표현됩니다. 따라서 만일 타입 추론으로 변수의 자료형을 Float으로 지정하고 싶다면 상수 값 뒤에 F를 붙여야 해요. 접미사 F는 대소문자를 구분하지 않습니다.

var flt1 = 2.71  // type: Double
var flt2 = 2.71F // type: Float, 접미어에 의해 타입 추론에서 flt2가 Float으로 선언됨.

기타 자료형

 프로그램에서는 단순히 숫자만을 이용하지는 않습니다. 프로그램 자체가 생활의 문제를 해결하기 위해 일련의 동작을 구성해놓은 것이니 결국 생활에서 사용하는 자료형도 가지고 있겠죠.

 

Boolean

 참/거짓을 판별하는 Boolean입니다. 이미 다른 언어를 한번 경험해봤다면 익숙할 것입니다.

자료형
Boolean True/False[# 두 값 중 하나만 지닙니다.]
문자/문자열

 실제 많은 프로그램에서는 문자, 혹은 문자열을 이용합니다. 어떤 기능을 가진 프로그램이던 결국 기능을 소개하기 위한 설명이 필요하니까요.

자료형
Char 단일 문자
String 문자열[# 단일 문자의 집합. 단어, 문장 등]

 자료형 Char의 경우 작은따옴표[#' Single Quotation]로, String의 경우에는 큰따옴표[#" Doble Quotation]으로 묶어 값을 표현합니다.

val ch:Char = 'C'
val str:String = "strings"

 이 또한, C 언어의 선언 방식과 유사하네요.


적용하기

 이제 자료형과 변수를 알아봤습니다. 그렇다면 가장 기초가 되는 항목, 출력을 배워보아야겠죠.

변수 출력하기

 변수의 값을 출력하는 방법은 두 가지가 있습니다.

fun main(){
    val str: String = "Hello world"
    println(str)
}

 출력 함수의 인자로 변수를 작성하는 방법이 첫 번째,

fun main(){
    val str: String = "Hello world"
    println("$str")
}

 문자열 안에서 $[# 달러 기호, 키보드 상단 숫자 <4> 키를 Shift와 함께 누르면 입력할 수 있습니다.]와 함께 원하는 변수 이름을 작성해주면 이용할 수 있습니다.

 


Next.

 

Kotlin: 03 출력하기

이전 시간에 잠시 출력에 대한 내용이 포함되어 있었습니다. 이번 포스트에서는 잠시 논외로 벗어나 출력하는 방법에 대해 알아봅니다. 출력하기 입력은 대개 사용자들로부터 어떤 값을 작성해 그 값을 프로그램..

pang2h.tistory.com

# index

728x90
반응형

'DEV > Kotlin' 카테고리의 다른 글

Kotlin: 05 연산자  (0) 2020.03.28
Kotlin: 04 자료의 비교와 변환  (0) 2020.03.27
Kotlin: 03 출력하기  (0) 2020.03.24
Kotlin: 01 시작하기  (2) 2020.03.22
Kotlin: 00 Intro  (0) 2020.03.21
Comments