0101011001010111

Kotlin - 4-7강 배열 / array , arrayOf 본문

Kotlin/스파르타_코틀린 문법

Kotlin - 4-7강 배열 / array , arrayOf

[진주] 2023. 8. 2. 20:08
728x90
반응형

https://blog.naver.com/vjinjoov/223169860368 =DIMO의 배열/형변환 // 첫번째 array포스팅

https://blog.naver.com/vjinjoov/223168809106-외국인이었는데 유튜버 이름 기억안남 ㅠ / 영상도 첨부해놓았고 array 및 2차원 array 배열방법 // 2번째 array포스팅

https://blog.naver.com/vjinjoov/223169083247  =3번째 array포스팅/array 이니셜라이징 및  한번에 만들기 

내가 작성한 array에 대한 포스팅들은 위 주소이다. 이제 4번째 array 포스팅을 해보자.


배열

: 변수에 순서를 매겨 활용할 수 있어요!▼

 

- 일반적으로 변수를 선언하면, 코틀린은 메모리에 띄엄띄엄 랜덤으로 생성해요.

- 변수의 위치정보가 연속적이기 않기 때문에 순서가 없어요.

  ㄴ 배열을 통해서 변수에 순서를 매겨 연속적으로 활용할 수 있어요.

 

- 코틀린은 배열을 사용하기 위해 arrayOf 메소드(키워드)를 제공해요.

 


예제 ▼

fun main(){
// arrayOf메소드를 호출하면 배열을 리턴해줍니다
// 1,2,3,4,5 각각을 저장한 변수 5개를 배열형태로 arr에 저장합니다
    var arr = arrayOf(1,2,3,4,5)

// 배열요소를 모두 출력합니다
    println(Arrays.toString(arr))

// 배열의 첫번째 요소에 저장된 값을 출력합니다
// var num1 = 1의 num1과 arr[0]은 동일합니다
// arr[0]은 하나의 변수로 취급할 수 있습니다
// arr은 0~4번방(인덱스)까지 접근할 수 있습니다
    println(arr[0])
}

자 이걸 쳐보면, (안드로이드 스튜디오활용중임)

Arrays 가 ㅃ ㅏ알갛게 변해있는데.. 

이거 import 해줘야한다!!! 알트 엔터 누르면 import 있음 

외부 패키지에 있는 클래스를 임포트 해준것이다.

요렇게 임포트 성공!

 

이 arrayOf 라는 거는 우리가 만든 메소드가 아니고 우리가 만든 클래스에 있는 것도 아니다.

이녀석은 jave.utill.Arrays라는 클래스 안에 있는 메소드기 때문에,

다른 패키지에 있는 거라 불러와야 해요. 위에 캡쳐처럼 import로 

 

 

일단 이 코드를 실행해 보겠습니다.

 

var arr = arrayOf(1,2,3,4,5)

라는거 안에다가 파라미터로 1 2 3 4 5 (원하는 값으로 줘도 됩니다 이거!)

arr에다가 이렇게 5개의 배열을 만들어 줬고, 

 

println(Arrays.toString(arr))

그 다음 Arrays.toString이라고 하는게 있습니다.

이 Arrays. 안에는 toString이라는 메소드가 있는데, 이 메소드는 파라미터로 arr를 받아요.

arr을 받아서 println을 해주면 

이게 나오는 겁니다!

 

arrayOf() 소괄호 안에 들어가는 하나하나의 숫자들이 다 변수라고 보시면 됩니다.

그럼 하나하나가 다 변순데 어떻게 접근할까요?

arr 변수는 하나인데???????

 

훗.

답 ▼

println(arr[0])

arr하고 인덱스, 방번호로 사용합니다.

배열의 첫번째 요소를 출력하기 위해서 0번을 썼구요,  

 

즉, []대괄호를 하나의 방이라고 생각하면 되는데,

이 방의 번호는 인덱스 값으로 설정된다 

그래서 첫번째가 0을 시작으로 0 1 2 3 4 ~ 가 되는것이다.

 

그래서 , println(arr[0]) 이것의 출력값은 

이 되게 된다.


배열은 이렇게 만들고 사용할 수 있어요.

그럼, 배열은 왜 쓸까요?

 

변수들을 '각각' 선언하면 반복적으로 변수에 접근하는 행위를 할 수 없어요.   // 이 이유가 가장 큽니다!!!

 

배열이 없다면 점수를 저장하기 위해 score1, score2, score3 이렇게 변수를 만들어야 해요. 

ㄴ 배열을 사용한다면 scores로 점수들을 묶어 활용하면 효율적으로 코드를 작성할 수 있어요 

 


배열예시 ▼

fun main() {
    var kors = arrayOf(90, 94, 96)
    for((idx, kor) in kors.withIndex()) {
        println("${idx}번째 국어 점수는 ${kor}입니다")
    }
}

arrayOf 90점 94점 96점.

이거 1번째사람의 국어점수 2번째 사람의 국어점수 3번째 사람의 국어점수.

이걸 kors에 넣고! 반복문을 돌릴거예요.

 

for((idx, kor) in kors.withIndex()) 

kors에 withIndex라는 메소드를 호출()하게 되면,

 

궁금한부분 1) withIndex라는건 정의되지 않았는데 어떻게?????실행되지????

 

idx, kor

이 두개의 어떤 값을 하나로 묶어서 리턴해 줍니다!  (ㅇ ㅔ..에?? 뭐여?? 어떻게여?? 이해가안가요)

첫번째는 idx 인덱스값! 두번째는 kor 실제값! 

 

궁금한부분 2) 분명히 변수는 kors로 해줬는데, for안에 kor는 어떻게 작동하는거지?이름이 다르잖아여!!! ㅠㅠㅠㅠ

 

결과값


핳!!!! 궁금한 부분들 이해했ㄷㄷ ㅏ!!!!!!!!!!!!!!!!!!!! (이럴때 진짜 제일 짜릿함 세상 행벅)

도움을 주신 스파르타 튜터님 / 다겸님 최고최고 !!!

 

자 이해한 부분은 다음과 같다!!! 

의문 1 )  withIndex라는건 정의되지 않았는데 어떻게?????실행되지????

(피식) 녀석 이걸 몰랐다니.....

withIndex는 ㅇ ㅓ ? 모듈같은거다!!! 원래 있는거라거 !!!!!!

Kotlin 언어의 Collection파트에 내장된 함수라 이거지!!!!!!!!

이거 말고도 언어에서 지원해주는 편의기능은 넘치고 넘친다 이 초보녀석아 크하하하하하핳

 

https://vjinjoov.tistory.com/14

(withIndex에 대해서 정리해 두었다!!)

 

 

의문 2) 분명히 변수는 kors로 해줬는데, for안에 kor는 어떻게 작동하는거지?이름이 다르잖아여!!! ㅠㅠㅠㅠ

ㅋ ㅎ ㅋ 

하 10분전의 나 때리고 싶다 이걸 몰랐다니마랴..

이해하기 쉽게 그림으로 정리해두겠다 나란인간 또 까먹을 가능성 매우 높다

요로케 쑉쑉 들어간다!!

순서는 앞의 이름은 index값, 뒤에는 요소! 이므로 참고해서 이름을 설정하도록 하자!! 

 

 

 

하 너무 시원해 ; 

 

 

 

 

728x90
반응형