티스토리 뷰
Base Of Coding 베오코 Youtube 채널을 개설했습니다.
아직은 많이 부족하지만, 블로그에 있는 정보들을 영상으로 담아 보다 더 자세하게 알려드리겠습니다.
점차 발전해나가는 모습 지켜봐주시면 감사하겠습니다.
좋아요와 구독으로 응원해주세요!
https://www.youtube.com/channel/UC7abgcK0OZtkjU9ERbsYKnQ
=========================================================================
안녕하세요. Base Of Coding입니다.
이전까지 적었던 내용들입니다.
오늘은 배열에 대해서 한 번 적어 볼 예정입니다. 배열은 잘 쓰면 가독성 뿐만 아니라 아주 편리해질 수 있습니다. 그럼 한 번 배워볼까요?
1. 배열이란?
- 배열은, 타입을 여러 개를 저장할 수 있는 저장소라고 보시면 될 것 같습니다.
사용하는 방법은, int[] integer; 라는 형식으로 사용이 가능합니다. 사용방법을 보면서 천천히 들여다 보도록 하겠습니다.
2. 배열 초기화 및 기본 사용
1. 첫 번째 방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | /* * Code Design Develop. Base Of Coding * https://includecoding.tistory.com/ */ using UnityEngine; /// <summary> /// 배열 초기화 첫 번째 방법 /// </summary> public class ArrayTest : MonoBehaviour { // 각각 10개의 데이터를 넣을 수 있는 배열로 초기화. private int[] integer = new int[10]; // 나이를 담는 배열 private string[] str = new string[10]; // 이름을 담는 배열 private float[] flo = new float[10]; // 키를 담는 배열 private void Start() { // 디버그 출력을 해서, 현재 배열의 크기를 알아보도록 합니다. Debug.LogFormat("integer length : {0} , str length : {1} , float length : {2}", integer.Length, str.Length, flo.Length); } } |
2. 두 번째 방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /* * Code Design Develop. Base Of Coding * https://includecoding.tistory.com/ */ using UnityEngine; /// <summary> /// 배열 초기화 두 번째 방법 /// </summary> public class ArrayTest : MonoBehaviour { // 초기화를 하면서 바로 값을 넣어주는 방식으로 초기화를 한다. private int[] integer = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; private string[] str = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" }; private float[] flo = { 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f }; private void Start() { for (int i = 0; i < integer.Length; i++) { // 각각 몇 번째 인덱스에 값이 들어가 있는 지를 보여준다. Debug.LogFormat("integer {0}번째 인덱스 : {1} , str {2}번째 인덱스 : {3} , flo {4}번째 인덱스 : {5}", i, integer[i], i, str[i], i, flo[i]); } } } |
보통 배열은 이런 형식으로 초기화를 한 뒤 사용을 합니다.
그리고, 배열의 첫 번째 인덱스는 1이 아닌, 0입니다. 이게 좀 헷갈리게 느끼실 수도 있다고 생각되는 부분인데
사람들은, 숫자를 셀 때 0부터 말하지 않고, 1로 시작을 해서 셉니다.
하지만, 10진수는 0~9이 기본이기 때문에, 1이 아닌 0부터 시작하는 게 맞다고 보시면 될 것 같습니다.
그냥 배열은 아 0부터 시작하는구나?라고 생각해주시고 코딩을 시작하시면 됩니다!
< 첫 번째 방법 풀이 >
- 첫 번째 방법은 초기화를 한 뒤, 데이터를 담을 수 있는 크기를 설정합니다. 정수를 담는 배열 10개와 문자열을 담는 배열 10개, 그리고 실수를 담는 배열 10개로 구성을 한 뒤, Start함수에서, 디버그로 출력을 시키면, 10, 10, 10이란 값이 뜨게 되는데 이 것은 배열의 길이를 출력하는 것으로써,
Length 라고 표현하기도 합니다.
좀 쉽게 풀이를 하자고 한다면, 한 식당에는 김치찌개만 팔고 있는 식당이 있습니다. 하지만 김치찌개를 담을 수 있는 그릇은 10개밖에 없습니다.
그런데, 손님이 11명이 오셨네요? 그렇다면 손님 한명은 드시질 못하겠지요? 그렇기 때문에, 크기를 설정을 했다면 딱 그 크기만 집어넣을 수 밖에 없습니다.
< 두 번째 방법 풀이 >
3. 배열을 사용하면 좋은 점
1 2 3 | private int age = 10; private int age1 = 20; private int age2 = 30; |
이렇게 사용하는 방법이
1 | private int[] age = { 10, 20, 30 }; |
이렇게 깔끔하게 보기 좋게 사용이 가능합니다.
4. 배열을 사용하면 안 좋은 점
5. 배열을 사용하면 좋은 경우
6. 초보자 분들이 배열을 사용할 때 흔히 하는 실수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /* * Code Design Develop. Base Of Coding * https://includecoding.tistory.com/ */ using UnityEngine; public class ArrayTest : MonoBehaviour { private int[] age = new int[2]; private void Start() { age[0] = 30; age[1] = 29; age[2] = 5; Debug.Log(age[0] + " : " + age[1] + " : " + age[2]); } } |
- 배열의 크기는 현재 2로 설정이 되어 있습니다. Start 함수에서, 0번과 1번 인덱스를 30과 29로 초기화를 해 놓은 상태인데, 갑자기 2번 인덱스 또한 추가를 하게 된다면, Unity 자체에서, IndexOutOfRangeException: Array index is out of range.와 같은 에러 메시지를 띄웁니다.
배열의 인덱스가 범위를 벗어났다라는 것, 즉 배열은 0~1번 인덱스만을 가지고 있는 데 2번 인덱스에는 왜 넣는거니? 라고 생각하시면 됩니다!
2. 배열의 인덱스는 무조건 0번 부터 시작이랍니다!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* * Code Design Develop. Base Of Coding * https://includecoding.tistory.com/ */ using UnityEngine; public class ArrayTest : MonoBehaviour { private int[] age = new int[2]; private void Start() { age[1] = 30; age[2] = 29; Debug.Log(age[1] + " : " + age[2]); } } |
- 배열의 인덱스는 무조건 0번부터 시작이라고 말씀드렸습니다. 자 여기서 보면, 크기는 2로 설정하고 2개의 값을 초기화했지만, 이상한 점을 발견했습니다.
0번 부터 초기화를 해줘야하지만, 깜빡하고 1번부터 시작해서 2번 인덱스까지 초기화를 해줬지만 에러 메시지는 컴파일러에서 뜨질 않네요?
그런데 막상 실행을 해보니, 첫 번째 실수와 같은 오류가 발생했습니다. 에러는 없는 데 뭐가 이상한 거지? 라고 생각하실 수 있습니다. 코딩 좀 하셨던 분들이라면
금방 캐치하실 수 있을 겁니다. 왜냐하면 겪어 본 적이 있거든요ㅎㅎ 이럴 경우 천천히 코드를 살펴보면서 왜 에러가 난 건지 파악을 하신다면 충분히 찾아내실 수 있습니다.
자 지금까지 배열에 대해서 한 번 알아봤습니다. 다음은, 함수에 대해서 한 번 알아보도록 하겠습니다.
Base Of Coding이였습니다. 감사합니다.
'게임 프로그래밍 ( 이제 안함 ) > 유니티로 배우는 C#' 카테고리의 다른 글
유니티로 배우는 C# - 10. 접근자와 지역 / 전역 변수? (1) | 2019.01.30 |
---|---|
유니티로 배우는 C# - 9. 함수에 대해서 (2) | 2019.01.18 |
유니티로 배우는 C# - 7. 반복문(2) while문 (0) | 2018.10.17 |
유니티로 배우는 C# - 6. 반복문(1) for문 (0) | 2018.09.11 |
유니티로 배우는 C# - 5. 연산자 (0) | 2018.08.31 |
- Total
- Today
- Yesterday
- 뷰포리아
- GitHub
- c#
- baseofcoding
- Base Of Coding
- 프로그래밍
- 게임프로그래밍
- 스프링
- 유니티로 배우는 C#
- 프리젠테이션 로직
- Unity
- MVC
- Next.js
- VR
- unity3d
- Git
- HTML
- Vuforia
- Controller
- Servlet
- Java
- JSP
- 안드로이드
- 비지니스 로직
- Spring
- 유니티
- 서블릿
- 유니티3D
- CSS
- spring boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |