배열

전 시간

for

while

while(조건)

{

    //명령

}

for(초기식; 조건식; 증감식

{

    //명령

}

나이, 성격, 이름...

변수 🐶 많아...

string A사람_이름

char A사람_성별

int A사람_나이

string B사람_이름

char B사람_성별

int B사람_나이

.

.

.

사람들의 이름

사람들의 나이

사람들의 성별

변수2

변수3

변수1

1: 변수1

2: 변수2

변수3

배열

배열  = 변수들을  하나로 묶은 것

배열하다

일정한 차례나 간격에 따라

비슷한 것 끼리

벌려놓음

배열(array)

동일한 성격의 데이터를 관리하기 쉽도록 하나로 묶는 .

색인(index) : 0~ 

원소, 요소(element)

크기(length/size/count)

선언

초기화

데이터 타입[] 이름;

ex) int[] array; char[] array;

이름 = new 데이터 타입[크기];

이름 = new 데이터 타입[크기]{원소1, 원소2,...};

(크기는 정수)

ex) array = new int[5];

array = new int[5]{1, 2, 3}; (X)

array = new char[5]{'a', 'p', 'p', 'l', 'e'};

using System;

class Program
{
    static void Main(string[] arg)
    {
        int[] array;
        char[] apple;
    
        array = new int[5];
        // 초기화 할때 다 초기화 해야 됨        
        //array = new int[5]{1, 2, 3};
       
        apple = new char[5]{'a', 'p', 'p', 'l', 'e'};
    }
}

원소(요소) 접근

이름[인덱스];

ex) array[0]

array[3]

if (인덱스 > 크기)

에러 발생: 

System.IndexOutOfRangeException: Index was outside the bounds of the array.

using System;

class Program
{
    static void Main(string[] arg)
    {
        char[] apple = new char[5]{'a', 'p', 'p', 'l', 'e'};
        Console.WriteLine(apple[0]); // output: a
        Console.WriteLine(apple[1]); // output: p

        apple[1] = 'A';
        Console.WriteLine(apple[1]); // output: A
        //apple = [A, p, p, l, e]
    }
}

배열 요소 중 특정 구간 확인

int age[] = new int[5]{3, 13, 2, 5, 6}

에서 0~3번 사람의 나이를 확인 하고 싶음.

for(int i = 0; i < 3; i++)

{

    Console.WriteLine(age[i]);

}

using System;

class Program
{
    static void Main(string[] arg)
    {
        int[] age = new age[5]{3, 13, 2, 5, 6};

        // 일일이 쓰기
        Console.WriteLine(age[0]);
        Console.WriteLine(age[1]);
        Console.WriteLine(age[2]);
    
        //반복문으로 간단하게 쓰기
        for(int i = 0; i < 3; i++)
        {
            Console.WriteLine(age[i]);
        }
    }
}

Console.WriteLine(age[0]);

Console.WriteLine(age[1]);

Console.WriteLine(age[2]);

배열 요소 전체 확인

int age[] = new int[5]{3, 13, 2, 5, 6}

에서 0~3번 사람의 나이를 확인 하고 싶음.

for(int i = 0; i < 5; i++)

{

    Console.WriteLine(age[i]);

}

using System;

class Program
{
    static void Main(string[] arg)
    {
        int[] age = new age[5]{3, 13, 2, 5, 6};

        for(int i = 0; i < 5; i++)
        {
            Console.WriteLine(age[i]);
        }

        for(int i = 0; i < age.Length; i++)
        {
            Console.WriteLine(age[i]);
        }
    }
}

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

{

    Console.WriteLine(age[i]);

}

배열 요소 전체 확인

foreach(int element in array)

{

    Console.WriteLine(element);

}

using System;

class Program
{
    static void Main(string[] arg)
    {
        int[] age = new age[5]{3, 13, 2, 5, 6};

        foreach(int element in age)
        {
            Console.WriteLine(element);
        }
    }
}

foreach; for + 각각의

전체를 탐색하는 경우이니 짧게 쓰자!

foreach(배열과 같은 타입 이름 in 배열)

{

    //명령

}

using System;

class Program
{
    static void Main(string[] arg)
    {
        int[] age = new age[5]{3, 13, 2, 5, 6};

        foreach(int element in age)
        {
            Console.WriteLine(element);
        }
    }
}

cf) string은 배열일까?

string : char - char - char -...

char[] = 0: char, 1: char, 2: char...

string > char[]

(char[]는 배열, string은 배열을 쓴 자료구조)

ex)

string str = "banana";

Console.WriteLine(str[0]); // b

Console.WriteLine(str[1]); // a

using System;

class Program
{
    static void Main(string[] arg)
    {
        string str = "banana";
           
        //for문 사용
        for(int i = 0; i < str.Length; i++)
        {
            Console.WriteLine(str[i]);
        }

        //foreach문 사용
        foreach(int element in str)
        {
            Console.WriteLine(element);
        }
    }
}

Q.

나이가 12, 44, 21, 55, 16인 사람이 있다.

이때 위 나이를 배열에 넣고

foreach 혹은 for을 이용하여

나이의 평균을 구하여 출력하자.

입력: X

출력 : 29.6

다음 시간 예고

다차원 배열

가변 배열

리스트

Made with Slides.com