본문 바로가기
Android

kotlin - 함수 응용, 앨비스 연산자, when, if, else-if, Array, list, set, map

by 801lhy 2020. 6. 11.

함수응용

fun plusTree(first: Int, second: Int, third: Int): Int{
    return first + second + third
}

fun minusTree(first: Int, second: Int, third: Int) = first - second - third

// 디폴트 파라미터 설정
fun multipleTree(first: Int = 1, second: Int = 1, third : Int =1) : Int{
    return first*second*third
}

fun showMyPlus(first:Int, second: Int): Int{
    println("ShowMyPlus First : " + first)
    println("ShowMyPlus Second : " +second)

    fun plus(first: Int, second: Int):Int{
        return first + second
    }

    return plus(first,second)
}

fun main(array: Array<String>){
    val result = plusTree(1,2,3)
    val result2 = minusTree(6,4,1)
    val result3 = multipleTree(4,3)
    val result4 = showMyPlus(4,5)

    println(result)
    println(result2)
    println(result3)
    println(result4)

}
 

앨비스 연산자 ?:

fun main(array: Array<String>){

        // 엘비스 연산자 ?:
        val number1 : Int? = null
        val number2 : Int? = 10
        
        val number3 = number1 ?: 20
        val number4 = number2 ?: 20

        println(number1) // null
        println(number2) // 10
        println(number3) // 20
        println(number4) // 10
 }

Flow Control : when

fun main(array: Array<String>){
	
    // when 사용하는 방법 1
    val value: Int = 3
    when(value){
        1 -> {
            println("value is 1")
        }
        2 -> {
            println("value is 2")
        }
        3 -> {
            println("value is 3")
        }
        else -> {
            println(" i don't konw value")
        }
    }


	// when 사용하는 방법 2
    val value2 = when(value){
        1 -> 10
        2 -> 20
        3 -> 30
        else -> 100
    }
    print("value2 : " + value2)
    
     val result: Int? = null
    when(result){
        null -> println("result is null")
        else -> println("result is not null")
    }
    
    // when 사용하는 방법 3
    val result2: Boolean? = null
    when(result2)
    {
        true -> println(" ")
        false -> println(" ")
        else -> println(" ")
    }
    
    // when 사용하는 방법 4
    val result3 = when(result2){
        true -> println(" ")
        false -> println(" ")
        else -> println(" ")
    }
    
    // when 상용하는 방법 5 ( 범위 지정 )
    val result4: Int = 10
    when(result4){
        is Int -> println("result 4 is Integer")
        // else -> println("result 4 is not Integer")
        in 0..10 -> println("value is 0..10")
        in 10..20 -> println("value is 10..20")
    }
        
 }

Flow Control : if, else-if

fun main(array: Array<String>){

// if문 else if 문 사용
    
    if(value == 1) println("value is 1")
    else if(value == 2) println("value is 2")
    else if(value == 3) println("value is 3")
    else println("i dont konw this value")
        
 }

Array

package com.example.myapplication.kotiln

fun main(array: Array<String>){

    // 타입 지정
    var group1 = arrayOf<Int>(1,2,3,4,5)
    
    // 타입을 선언하지 않으면 상관 없이 들어갈 수 있음
    var group2 = arrayOf(1,2,"hello",4.5,5)
    // 두번째의 인덱스 값을 변경할 수 있다.
    group2.set(2,"bye")

    // 배열의 타입을 명시적으로 선언할 수 있다.
    val a1 = intArrayOf(1,2,3,4)
    val a2 = charArrayOf('b','c','d')
    val a3 = doubleArrayOf(1.2,199.2)
    val a4 = booleanArrayOf(true, false, true)

    
    println(group1 is Array) // true
    println(group1.get(2)) // 3
    println(group1[1]) // 3
    println(group2[2]) // bye

    // lambda
    val a5 = Array(10, { 0 })
    var a6 = Array(5, {1;2;3;4;5})

}

Collection : list, set, map

// Collection -> list, set, map

fun main(array: Array<String>){

    // List 중복 허용, Immutable collection : 변경 불가능 (set 안됨 )
    val numberList = listOf<Int>(1,4,3,4,2)
    println("list : " + numberList) // [1,4,3,4,2]
    println(numberList.get(0)) // 1
    println(numberList[0]) // 1

    // Set 중복을 허용하지 않고 순서가 없다.
    val numberSet = setOf<Int>(4,2,3,3,1,1,1)
    println("set : " + numberSet) // [4,2,3,1]
    numberSet.forEach{
        println("IT : " + it)
    } // 4,2,3,1


    // Map Key-Value
    val numberMap = mapOf<String, Int>("four" to 4, "five" to 5)
    println("map : " + numberMap) // {four=4, five=5}
    println(numberMap.get("five")) // 5

    // mutable collection : 변경 가능
    val mNumberList = mutableListOf<Int>(1,2,3)
    mNumberList.add(3,10)
    println("mutable list : " + mNumberList) // [1,2,3,10]

    val mutableMap = mutableMapOf<String,Int>("one" to 1)
    mutableMap.put("ten",10)
    println("mutable map : " + mutableMap) //{one=1,ten=10}

}

 

'Android' 카테고리의 다른 글

kotlin - 퀴즈 풀이  (0) 2020.06.27
kotlin - for, while  (0) 2020.06.11
kotlin - 변수, 자료형, 함수  (0) 2020.06.09