✅ 이 시리즈는 다른 언어(Java, Python 등)를 아는 사람이 Kotlin 문법을 빠르게 익히기 위한 정리 문서 입니다.
🔹 Kotlin 변수 선언
| 구분 | 키워드 | 설명 |
|---|---|---|
| 불변 변수 | val |
값 변경 불가 (final과 유사) |
| 가변 변수 | var |
값 변경 가능 (일반 변수) |
val a: Int = 10 // 불변 정수
var b: Int = 20 // 가변 정수
b = 30 // ✅ 가능
a = 50 // ❌ 오류 (val은 재할당 불가)
- 코딩테스트에서는
var를 주로 사용 (값 갱신이 필요하므로)
🔹 기본 자료형 목록
| 자료형 | 설명 | 예시 | 초기값 | 범위 |
|---|---|---|---|---|
Int |
32비트 정수 | var x: Int = 10 |
0 |
-2,147,483,648 ~ 2,147,483,647 |
Long |
64비트 정수 | var y: Long = 10000000000L |
0L |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
Float |
32비트 실수 | var f: Float = 3.14f |
0.0f |
|
Double |
64비트 실수 | var pi: Double = 3.14 |
0.0 |
|
Boolean |
논리형 | var flag: Boolean = true |
false |
true / false |
Char |
문자 | var c: Char = 'A' |
'�' |
Unicode 문자 하나 |
String |
문자열 | var s: String = "Hello" |
"" |
무제한 길이 문자열 |
- 주의: Kotlin은
Byte,Short,Float도 지원하지만, 거의 쓰지 않으므로 생략 가능.
🔹 타입 추론
Kotlin은 타입을 생략해도 자동으로 추론할 수 있습니다.
val x = 42 // Int로 추론
val name = "Kotlin" // String으로 추론
단, 초기값이 없을 경우 반드시 타입 명시가 필요합니다.
var score: Int // 초기화 없이 선언 시 타입 필요
score = 100
🔹 null 가능 변수와 안전 처리
Kotlin은 기본적으로 null 허용이 금지되어 있습니다.
nullable 변수는 ?를 사용해 선언합니다.
var name: String? = null // null 허용
name = "Alice"
null 처리 방식:
println(name?.length) // null-safe 호출
println(name ?: "Unknown") // null이면 대체값 반환
println(name!!.length) // null 아님을 보장 (null이면 런타임 에러)
🔹 변수 출력 예시
val age: Int = 25
val name: String = "John"
println("$name is $age years old")
println("Sum: ${3 + 4}")
문자열 안에서 변수 또는 식을 출력할 수 있으며 ${} 사용 시 연산도 가능.
🔹 추가 실전 팁: 값 비교와 스코프
🔸 값 비교 vs 참조 비교
val a = 128
val b = 128
println(a == b) // ✅ true: 값 비교 (Java의 equals())
println(a === b) // ✅ true: 참조 비교 (Java의 ==). 기본형 캐싱 덕분에 true
val s1 = String(charArrayOf('h','i'))
val s2 = String(charArrayOf('h','i'))
println(s1 == s2) // true: 값 비교
println(s1 === s2) // false: 참조 다름
==: 값 비교 (Java의.equals()와 동일)===: 참조 비교 (Java의==와 동일)- 기본형(Int, Boolean 등)은 값이 같으면 참조도 같을 수 있음 (캐싱)
🔸 변수 스코프 예시
fun main() {
val x = 10
if (true) {
val x = 20 // 블록 내 새로운 변수
println(x) // 20
}
println(x) // 10
}
- Kotlin은 블록 스코프를 지원
- 같은 이름의 변수를 다른 스코프에서 새로 선언 가능
✅ 요약 정리
val(불변),var(가변) 구분에 유의- 타입 추론은 가능하지만 초기화 없으면 명시 필요
- null은 기본 금지 → nullable 타입은
?필수 - 문자열 보간:
$변수,${식} - 주요 자료형의 기본값과 범위 확인해둘 것
이제 Kotlin의 변수와 기본 타입에 대한 기초를 완벽하게 익혔습니다.
다음은 시리즈 ②: 문자열(String) 정리로 이어집니다.
'Code Odyssey' 카테고리의 다른 글
| Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리 (1) | 2025.07.03 |
|---|---|
| Kotlin 코딩테스트 문법 시리즈 ② : 문자열 (String) (1) | 2025.07.02 |
| Map<String, Integer> dp 는 시간초과가 나는 이유 : 프로그래머스 - 사칙연산 (1) | 2025.06.11 |
| 왜 Java는 length, length(), size()를 따로 써야 할까? – 통일 안 된 이유 (1) | 2025.06.06 |
| 📌 Java에서 배열 정렬하기 - Arrays.sort() (0) | 2025.05.24 |