Kotlin 복습(1)-반복문,list,map,Null

지슈·2023년 7월 5일
0

Kotlin 복습

목록 보기
1/4

반복문

반복문 작성하는 여러 방법

  1. 아래 두 반복문은 같은 출력값을 가진다.
for(i in 1..10){
        print(i)
        print(",")
    }
for(i in IntRange(1,10)){
        print(i)
        print(",")
    }
  1. until을 사용하면 미만까지 센다
for(i in 1 until 10){
        print(i)
        print(",")
    }
  1. step은 괄호 사이의 수만큼 간격으로 센다
for(i in 1..10 step(2)){
        print(i)
        print(",")
    }
  1. downTo는 수를 아래로 센다
for(i in 10 downTo 1){
        print(i)
        print(",")
    }
  1. downTo step 활용
for(i in 10 downTo 1 step(2)){
        print(i)
        print(",")
    }
  1. while
var c = 1
while(c<11){
        print(c)
        print(",")
        c++
    }


list

변경가능한 리스트(mutable list)

val list = mutableListOf(1,2,3,4,5)
    list.add(6)
    list.addAll(listOf(7,8,9))

mutableListOf로 생성한 리스트는 변경,추가 가능하다.

변경불가능한 리스트 (immutable list)

val list1 = listOf(1,2,3,4)
    //list1.add() add함수라는 것이 없음. 리스트 호출만 가능
    list1.get(1) //== list1[0] 인덱싱으로 get 대신 쓸 수 있음

listOf로 생성한 리스트는 변경 불가능하다. add함수 자체가 없음

코틀린 리스트의 특징

  1. seperator를 기준으로 요소들이 나눠져서 출력됨
println(list.joinToString(","))
  1. 코틀린은 리스트에 여러 타입의 값을 넣을 수 있음
val diverseList = listOf(1,"안녕", 1.78, true)
  1. 아주 많은 확장함수들을 사용할 수 있음
list1.map{it * 10}.joinToString("/")

안에 있는 모든 요소에 10을 곱할 수 있는 map 함수이다.
현업에서는 확장함수들을 자주 사용한다.



map

변경가능한 맵(mutable map)

val map1 = mutableMapOf((1 to "안녕"),(2 to "Hello"))
map1.put(3,"응") 
map1[3]="응" 
map1[100] = "백"

mutableMapOf로 생성한 맵은 변경하거나 put으로 추가할 수 있다.
이때 map.put(3,"hi")map[3]="hi"는 서로 대체가능하다.

변경불가능한 맵(immutable map)

val map = mapOf((1 to "안녕"),(2 to "Hello"))

mapOf로 생선한 맵은 변경할 수 없다.



Null

자바에서는 컴파일 단계에서 null을 체크할 수 없다.
그래서 앱을 실행할 때 nullException이 나타나는 걸 발견할 수 있고 에러를 찾기 어렵다.

그러나 코틀린은 null이 될 수 있는 값과 없는 값을 구분한다.

변수 선언

null 가질 수 없는 변수

var name : String = "지수"

이렇게 선언한 변수는 name = null을 하면 에러가 발생한다.
null을 저장할 수 없는 String 타입으로 변수 선언을 했기 때문이다.

null 가질 수 있는 변수

var nickname: String? = null 
var secondNumber : Int? = null

타입명 뒤에 ?을 붙여서 변수를 선언하면 null값을 가질 수 있는 타입인 것이다.
이렇게 코틀린은 컴파일 단계에서 null exception을 확인할 수 있도록 한다.

null 체킹 방법(엘비스 연산)

기존에 자바는 조건문으로 null을 체크할 수 있게 했다.

val result = if (nickname == null){
        "값이 없음"
    }else{
        nickname
    }
    println(result)

그러나 코틀린에서는 조건문을 사용하지 않는다.
코틀린에서는 Elvis Operation(엘비스 연산)으로 null을 체크한다.

nickname = null
val result = nickname?: "값이 없음"
println(result)//출력 : 값이 없음

이 코드는 nickname이 null이면 :오른쪽 값을 내뱉는다는 뜻이다.
위 경우 nickname이 null을 저장하기 때문에 "값이 없음"을 출력한다.

변형해서 이렇게도 사용할 수 있다.

nickname = null
val size = nickname?.length
println(size) //출력 : null

이 코드는 nickname 이 null이면 더이상 진행하지 않고 null을 내뱉으라는 뜻이다. nickname이 null이 아니면 nickname의 length함수로 길이를 출력하면 된다.

profile
😎인공지능&⛓️블체

0개의 댓글