일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c# 백준
- 시샵
- c# c#프로그래머스
- Console.WriteLine
- C#문법
- unity공부
- 유니티서바이벌게임만들기
- 시샵문법
- c#기본문법
- Unity
- c#기초문법
- 유니티상호작용
- c#코딩기초트레이닝
- 유니티공부
- unity3d게임만들기
- c#문제
- 오블완
- c#프로그래머스기초문법
- 유니티3dui
- c#
- unity게임만들기
- unity3d
- unity3dservival
- 티스토리챌린지
- 유니티게임만들기
- 유니티
- 스파르타
- 스파르타코딩클럽
- unity게임
- c#코테
- Today
- Total
나 개발자 진짜 되냐?
[ C# 기본 문법 10 ] 배열 본문
배열이다.
나는 배열을 굉장히 어려워했던 과거 기억이 있다.
오늘 공부로 빠삭하게 머리에 집어넣어야겠다.
🌟 배열 🌟
동일한 자료형의 값들이 연속적으로 저장되는 자료 구조
배열은 인덱스를 사용해서 접근한다.
인덱싱은 0번부터 시작이다.
선언된 크기만큼 공간을 메모리에 할당받는다.
✨ 배열 선언 ✨
데이터_유형[] 배열_이름;
✨ 배열 초기화 ✨
배열_이름 = new 데이터_유형[크기];
여기서 new는 할당하다는 뜻으로 해석..!
✨ 배열 한 줄로 선언 및 초기화 ✨
데이터_유형[] 배열_이름 = new 데이터_유형[크기];
위에 두개 합친 것
✨ 배열 요소 접근 ✨
배열_이름[인덱스] = 값;
값 = 배열_이름[인덱스];
예제를 보며 익혀보자!
// 데이터 삽입 + 초기화
int[] itemPrices = { 100, 200, 300, 400, 500 };
int totalPrice = 0;
//length 는 길이! 이 배열의 길이 5개니까 5이다!
for (int i = 0; i < itemPrices.Length; i++) // 0부터 4까지 돌아간다.
{
//가격을 더해준다.
totalPrice += itemPrices[i];
}
Console.WriteLine("총 아이템 가격: " + totalPrice + " gold");
주석에도 다 써놨지만
Length는 길이라는 뜻으로
배열의 총길이를 의미한다.
우리는 배열에 5개를 넣었으니
길이도 5일거고
0부터 4까지 있을 것이다.
배열을 이용해서 숫자 맞추기 게임을 하나 만들어 보자!
Random random = new Random(); // 랜덤 객체 생성
int[] numbers = new int[3]; // 3개의 숫자를 저장할 배열
// 3개의 랜덤 숫자 생성하여 배열에 저장
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = random.Next(1, 10);
}
int attempt = 0; // 시도 횟수 초기화
while (true)
{
Console.Write("3개의 숫자를 입력하세요 (1~9): ");
int[] guesses = new int[3]; // 사용자가 입력한 숫자를 저장할 배열
// 사용자가 입력한 숫자 배열에 저장
for (int i = 0; i < guesses.Length; i++)
{
guesses[i] = int.Parse(Console.ReadLine());
}
int correct = 0; // 맞춘 숫자의 개수 초기화
// 숫자 비교 및 맞춘 개수 계산
// 숫자 3개를 비교해야하니까 2차원 배열
for (int i = 0; i < numbers.Length; i++)
{
for (int j = 0; j < guesses.Length; j++)
{
if (numbers[i] == guesses[j])
{
correct++;
break;
}
}
}
attempt++; // 시도 횟수 증가
Console.WriteLine("시도 #" + attempt + ": " + correct + "개의 숫자를 맞추셨습니다.");
// 모든 숫자를 맞춘 경우 게임 종료
if (correct == 3)
{
Console.WriteLine("축하합니다! 모든 숫자를 맞추셨습니다.");
break;
}
}
🌟 다차원 배열 🌟
배열의 배열
여러 개 배열을 하나로 묶어놓은 배열
보통 행과 열로 이루어진 표 형태와 유사한 구조
2차원 3차원 형태의 배열을 의미하며
우리가 배우는 C#에서는 다차원 배열을 선언할 때
각 차원의 크기를 지정하여 생성한다.
// 2차원 배열의 선언과 초기화
int[,] array3 = new int[2, 3]; // 2행 3열의 int형 2차원 배열 선언
// 다차원 배열 초기화
array3[0, 0] = 1;
array3[0, 1] = 2;
array3[0, 2] = 3;
array3[1, 0] = 4;
array3[1, 1] = 5;
array3[1, 2] = 6;
// 선언과 함께 초기화
int[,] array2D = new int[3, 4] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
2,3 이기 때문에
0과 1
0,1,2
가 된다.
혹시 몰라서 3차원도 가져왔다.
2차원은 행과 열이고
3차원은 면, 행, 열 이다.
윽.. 복잡해...!!!!!
// 3차원 배열의 선언과 초기화
int[,,] array3D = new int[2, 3, 4]
{
{ { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } },
{ { 13, 14, 15, 16 }, { 17, 18, 19, 20 }, { 21, 22, 23, 24 } }
};
2차원 배열을 통해 게임 맵을 자주 구현한다고 하여
예시문을 가져왔다.
함께 보자!
int[,] map = new int[5, 5]
{
{ 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 1 },
{ 1, 0, 1, 0, 1 },
{ 1, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1 }
};
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (map[i, j] == 1)
{
Console.Write("■ ");
}
else
{
Console.Write("□ ");
}
}
Console.WriteLine();
}
선언과 함께 초기화를 해주기 위해
중괄호를 열어서 값을 집어넣어주었다.
그리고 2차원 배열이니까
for문도 두 개 넣어서
0.0 이 1일 때
0.1 이 1일 때
1.0 이 1일 때
등으로
for문을 돌리고
만약에 1이면 시큼한 네모를
아니면 빈칸네모를 넣어주는 식을 넣고
첫 줄이 끝나면
엔터를 넣어서
다음칸으로 내려갈 수 있게 해 준다.
이렇게 해주면
결과창이
겉에는 시큼한 네모가
안에는 빈칸네모가 그려져서 나온다.
사진을 첨부하려고 했는데
징그러워서 스킵한다...ㅋㅎㅎㅋ
이렇게 다차원 배열과 배열을 알아보았다.
배열은 봐도 봐도 어려운 거 같다.
자주 들여다보고 익히고 싶다.
[]는 배열!
중괄호 필수!
'C# 을 맛보았어요! > 문법정리를 해보았어요!' 카테고리의 다른 글
[ C# 기본 문법 12 ] 메서드 (1) | 2024.09.22 |
---|---|
[ C# 기본 문법 11 ] 컬렉션 (0) | 2024.09.22 |
[ C# 기본 문법 9 ] 반복문 (0) | 2024.09.21 |
[ C# 기본 문법 8 ] 조건문 (0) | 2024.09.20 |
[ C# 기본 문법 7 ] 문자열 처리 (0) | 2024.09.19 |