ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] Array
    Kotlin 2022. 9. 14. 15:22
        // 1.
        // 코틀린 배열생성은 arrrayOf를 자주 이용함
        val array1 = arrayOf(10, 20, 30 , 40,  50)
        println("1. array1: $array1") // 클래스 이름과 해쉬코드 등이 출력됨
    
        // 2.
        // 배열의 요소들을 한번에 출력하려면 contentToString  함수 사용
        println("2. array1: ${array1.contentToString()}")
    
        // 3.
        // 코틀린의 배열은 일단 자료형의 제약이 없어서 자바의 리스트 등처럼 여러 자료형데이터를
        // 자료형 데이터를 하나의 배열에 넣어서 사용할 수 있음.
        // 다만 그것이 권장할 만한 동작은 아니기에 자료형을 제한하는 코드가 제공되어 사용됨
        // 자료형 제약없이 사용
        val array2 = arrayOf(100, 11.11, "문자열", true)
        println("3. array2: ${array2.contentToString()}")
    
        // 4.
        // 하나의 자료로 제한하여 사용
        val array3 = intArrayOf(10, 20, 30, 40, 50) 
        // 기본 자료형은 ArrayOf 앞에 자료형을 붙여쓰고
        val array4 = doubleArrayOf(11.11, 22.22, 33.33, 44.44, 55.55)
        val array5 = arrayOf<String>("문자열1", "문자열2", "문자열3") 
        // 객체형 자료는 제네릭 사용함
        println("4. array3: ${array3.contentToString()}")
        println("4. array4: ${array4.contentToString()}")
        println("4. array5: ${array5.contentToString()}")
    
        // 5.
        // 0 다섯개가 채워진 배열 생성
        var array6 = Array( 5, {0})
        // 다섯개의 널이 채워진 배열, 코틀린 변수는 널을 허용하지 않는 것이 기본
        // 그러므로 이와 같이 ?를 넣어야 널값을 저장 가능
        var str = Array<String?>( 5, {null})
        println("5. array6: ${array6.contentToString()}")
        println("5. str: ${str.contentToString()}")
    
        // 6.
        print("6. ")
        for(item in array1){ // 배열을 이용한 반복실행문 실행
            print("$item\t")
        }
     

     

        println("첫번째 값: ${array1.first()}")
        println("마지막 값: ${array1.last()}")
        println("30의 위치: ${array1.indexOf(30)}")
        println("평균: ${array1.average()}")
        println("합: ${array1.sum()}")
        println("개수: ${array1.count()}")
        println("개수: ${array1.size}")
        println("30을 포함하는가: ${array1.contains(30)}")
        println("1000을 포함하는가: ${array1.contains(1000)}")
        println("30을 포함하는가: ${30 in array1}")
        println("1000을 포함하는가: ${1000 in array1}")
        val array12 = arrayOf(5, 1, 3, 7, 10, 8)
        val array13 = array12.sortedArray()
        val array14 = array12.sortedArrayDescending()
        println("array13: ${array13.contentToString()}")
        println("array14: ${array14.contentToString()}")

    요일 출력
    fun main(){
        print("연도 입력: ")
        val year: Int = readLine()!!.toInt()
        print("월 입력: ")
        val month: Int = readLine()!!.toInt()
        print("일 입력: ")
        val day: Int = readLine()!!.toInt()
        var days:Int=sumdays(year, month, day)
        val temp:Int=days%7
        val weekday:String = selectWeekday(temp)
        println(weekday)
    }
    
    fun sumdays(year:Int, month:Int, day:Int):Int{
        var days=0
        val mdays = arrayOf(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
        if((year%4 ==1)&&(year%100!=0)||(year%400==0)) mdays[2]=29
        days = (year-1)*365
        val y:IntRange = 1 .. (year-1)
        for(i in y){
            if((i%4 ==1)&&(i%100!=0)||(i%400==0)) days++
        }
        var i:Int=0
        while(i<month){
            days += mdays[i]
            i++
        }
        days += day
        return days
    }
    
    fun selectWeekday(t:Int):String = when(t) {
        1->"월요일"
        2->"화요일"
        3->"수요일"
        4->"목요일"
        5->"금요일"
        6->"토요일"
        0->"일요일"
        else -> "잘못된 연산입니다"
    }

     

    'Kotlin' 카테고리의 다른 글

    [Kotlin] Constructor  (0) 2022.09.14
    [Kotlin] Class  (0) 2022.09.14
    [Kotlin] Loop  (0) 2022.09.14
    [Kotlin] 익명함수  (0) 2022.09.14
    [Kotlin] 람다함수  (0) 2022.09.14

    댓글

Designed by Tistory.