kotlin 정리 1

mangyun·2021년 11월 3일

kotlin

목록 보기
1/4

공부했던 코틀린 정리내용

변수

변수 선언

val name:String = "김찬정" // 읽기만 가능
var age:String = 20 // 읽기/쓰기 가능
var address = "서울" // 타입생략이 가능

name = "홍길동" // 컴파일 오류
age = 20 // 가능

Null 허용 변수와 Null을 허용하지 않는 변수 선언

// null 값 허용 변수 선언
var name: String? = null

// null 값을 허용하지 않는 변수에 null을 선언 할 수 없다.
var age: Int = null

Null 체크

val name: String? = null

// name 이 null이 아니면 length 를 반환
// java 에서  Integer nameLength = name != null? name.length() : null; 같음
val nameLength = name?.length

// name 이 null 이면 NullPointerException 발생 시킨다.
val nameLength = name!!.length

// 타입케스팅이 불가능한 경우 예외를 발생시키지 않고 null 반환한다.
val age: Int? = name as? Int?

흐름제어

IF 표현식

// String msg = msgType == 1 ? "안녕" : "잘가"; 와 같다
val msg = if (msgType == 1) "안녕" else "잘가"

// 함수 선언 시 if를 아래와 같이 사용가능 하다 
fun getMsg(msgType: Int) = if (msgType == 1) "안녕" else "잘가"

WHEN 표현식

val inputType = 2
val msgType = "2"
fun checkType(type: Int) = if (type == 1) 1 else -1

when (inputType) {
    1 -> println("1")
    2, 3 -> println("2 or 3")
    else -> println("not")
}

// 조건에 함수를 적용할 수도 있다.
when (inputType) {
    checkType(inputType) -> println("OK")
    else -> println("NOT OK")
}

// 조건에 범위 연산자 사용도 가능하다.
// 1~100 에 포함된다면 
val result = when (inputType) {
    in 1..100 -> "1..100 OK"
    else -> "NOT OK"
}

// 분기처리할 때 확인 대상이 되는 변수를 다르게 줄 수도 있다.
when {
    inputString == "4" -> println("4 OK")
    msgType == "2" -> println("msgType = 2")
}

FOR 반복문

val item = arrayOf(1, 2, 3)
val list = listOf(1, 2, 3)

for (index in item.indices) {
    println(index)
}

for (index in list.indices) {
    println(index)
}

// 1부터 100 까지 반복
for (i in 1..100) {
    print("$i ")
} 

// 1부터 99까지 반복
for (i in 1 until 100) {
    print("$i ")
} 

// 2 부터 10 까지 반복,  2씩 증가
for (i in 2..10 step 2) {
    print("$i ")
} 

// 10 부터 1 까지 감소
for (i in 10 downTo 1) {
    print("$i ")
} 

WHILE 반복문

val item = Array(5) { v -> v + 1 }
var index = 0

while (index < item.size) {
    println(item[index])
    index++
}
profile
기억보다는 기록을 하자.

0개의 댓글