코드네임 :

배열 본문

프로그래밍/Unity(C#)

배열

비엔 Vien 2023. 7. 2. 13:12

배열 선언문 모양이 C랑 좀 다르다묘,, +new도 있삼

 

배열 인덱스 시작은 항상 0번부터!! (공통)

 

배열의 길이 (array.Length) 만큼 반복할 때,

for문 사용 시  i = 0 으로 두었다면,

i < array.Length 처럼  ' < ' 를 사용할 것 !! (그래야 배열의 길이만큼 반복함 (index가 0부터 시작하니께)

▶ for(int i = 0; i < array.Length; i++)

 

 

<정수와 정수의 나눗셈 계산결과를 소수점으로 구하고 싶을 때>

 

정석 (정수형 변수 하나만 실수형 변환) -  (실수와 정수의 연산 결과 = 실수이므로) - 이걸 추천하심

float average = (float)sum /points.Length;

or

float average = sum / (float)points.Length;

or

정수형 변수 하나 앞에 1.0f(실수)를 곱하기 (실수와 정수의 연산 결과 = 실수이므로)

float average = 1.0f * sum / points.Length;

or

float average = sum / (1.0f * points.Length); 


+ 강의내용 첨 봤을 때 뭔가 잉.. 했기 땜에 찾아봤음

⬇️ 간단하게 C#에서 배열 표현법 보여줌

https://yeko90.tistory.com/entry/c-기초-배열-선언-초기화-하는-3가지-방법

 

1번째 선언 방법 : 변수 선언 후 배열 할당

int array[];
array = new int[] {1,2,3};

or

int array[];
array = new int[3] {1,2,3}; // 이 방법은 배열의 크기를 애초부터 먼저 정하는 방법
                            // but 미리 크기를 정해버리면 추후 크기 수정이 어려우니 
                            // compile 단에서 알아서 크기를 정하는 첫번째 방법 추천
or

int points[];
points = new int[5];

 

2번째 선언 방법 : 변수 선언과 동시에 배열 할당

int[] array = new int[] {1,2,3};

or

int[] array = new int[3] {1,2,3};

or

int[] points = new int[5];

 

3번째 선언 방법 : new 사용 X

int[] array = {1,2,3};

(여긴 강의 내용)

 

배열 is 상자

상자에 넣는 값 = 요소

상자 수 = 요소 수 

 

배열 준비 !  :  긴 상자 한개만

 int[] points;

연결할 상자 준비 !  :  5개를 준비하려면 오른쪽에 new int [5] 작성

int[] points = new int[5]; // new int[5]로 생성된 배열의 메모리 5개를 points에 넘겨줌

new : "만든다"라는 의미

즉 int형 상자 다섯 개를 만든다는 뜻

 

 

예제 #1

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    void Start()
    {
        int[] array = new int[5]; // array에 5개 메모리 공간 할당

        array[0] = 2;
        array[1] = 10;
        array[2] = 5;
        array[3] = 15;
        array[4] = 3;

        for(int i=0; i < 5; i++) // 0~4까지 반복
                                  // for(int i=0; i <= 5; i++)으로 작성 시 마지막에 오류남
                                  // 처음에 array배열에 5개의 메모리를 할당했으므로 
                                  // i <= 5면 0~5까지의 index의 요소 6개를 요구하는 것인디
                                  // 5번(6번째)배열은 없으므로
            Debug.Log(array[i]);
    }
}

/* 실행결과  

2
10
5
15
3

*/

 

예제 #2 : 배열에 포함된 숫자 중 90이상만 출력

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    void Start()
    {
        int[] points = { 83, 99, 52, 93, 15 };  // 정수형 배열 points

        for (int i = 0; i < points.Length; i++) // 0 ~ points배열의 길이(=총 index 개수)
                                                // 즉, 배열의 길이만큼 반복
        {
            if (points[i] >= 90) // 배열 요소 중 90 이상인 수가 있다면, 
                Debug.Log(points[i]); // 해당 요소를 출력 
        }
    }
}

/* 실행결과  

99
93

*/

 

예제 #3 : 배열에 포함된 값의 평균 구하기 (정수와 정수의 나눗셈) + 아래에 더 있음

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    void Start()
    {
        int[] points = { 83, 99, 52, 93, 15 };

        int sum = 0;

        for (int i = 0; i < points.Length; i++) // 배열의 길이(5)만큼 == 배열의 5번째(4번) 요소까지
            sum += points[i]; // sum에 배열의 요소들 더하기

        int average = sum / points.Length; // 평균 내기 (정수와 정수의 나눗셈)
        Debug.Log(average);
    }
}

/* 실행결과  

68 (정수의 나눗셈이기 땜에!! --- 실수 나눗셈이라면 결과는 68.4)

*/

⬇️

 정수와 정수의 나눗셈에서  실수형의 결과를 얻고 싶다면? (=소수점까지 출력하고 싶다면?)

 

정석 (정수형 변수 하나만 형변환)  (실수와 정수의 연산 결과 = 실수이므로) - 이걸 추천하심

float average = (float)sum /points.Length;

or

 

float average = sum / (float)points.Length;

or

정수형 변수 하나 앞에 1.0f(실수)를 곱하기 (실수와 정수의 연산 결과 = 실수이므로)

float average = 1.0f * sum / points.Length;

or

float average = sum / (1.0f * points.Length); 

 

➡️ 일케 바꾸고 실행시키면 결과가 68.4가 나온다!!!

'프로그래밍 > Unity(C#)' 카테고리의 다른 글

method (사용자 정의 함수)  (0) 2023.07.03
Unity랑 다른 VS 연결법  (0) 2023.07.02
조건제어문 (C와 내용 같음...^^)  (0) 2023.06.30
변수 사용하기  (0) 2023.06.29
C# 스크립트 & 실행  (0) 2023.06.27