
다시 c# 기초학습으로 돌아왔다. 첫주차(저번주)에서 바로 미니 프로젝트로 들어가서 unity에 대해 다시 복습했다면, 이제는 다시 초심으로 돌아와 c# 기초부터 시작한다.
오늘의 TIL
- Split
- 배열
저번 사전캠프때 c# 기초를 어느 정도 해두긴 했지만, 그때는 간략하게 핵심 내용만 배울 수 있어서 그렇게 자세히는 알지 못하였다. 그래서 오늘부터 세세하게 c#에 대해 다시 수업을 듣게 되었는데, 저번 사전 캠프에서는 못 보았던 기능이 있었다.
그 기능이 Split이다.
예전에는 입력받을 때 하나 입력하고 다시 다른 텍스트를 띄워서 입력하는 방식으로 여러개를 입력하였다
ex)
Console.Write("키를 입력하시오 : ");
string input = Console.ReadLine();
Console.Write("몸무게를 입력하시오 : ");
string input = Console.ReadLine();
이런 느낌의 코드로만 활용했다면
오늘 알게된 Split은 한번의 입력에 두 개의 값을 입력할 수 있었다.
Console.Write("키와 몸무게를 입력하시오 : ");
string input = Console.ReadLine();
string[] sum = input.Split(',');
이런 느낌으로 Split을 이용하여 ('')안에 구분할 문자만 넣으면 문자를 기준으로 양 옆을 나눠서 배열의 값으로 나누어 준다.
ex)
위에서 코드로 (',')라고 해두었기 때문에 178과 75가 서로 같은 값에 저장되는 것이 아니라 하나는 input[0]에 하나는 input[1]에 저장해서 따로 입력할 필요없이 같은 줄에 여러개를 입력할 수 있었다. 그러고보니 어떤 사이트에서 개인정보나 그런거 적을 때 스페이스바로 뛰어서 적거나 ,로 연속으로 적으라고 했던걸 봤었는데 아마 이런식으로 코드가 짜여졌던 것 같다.
내가 배열에 좀 약했다는 것을 오늘 알았다. 오늘 수업을 들으면서 따라가는데 제일 이해가 가지 않았다.
우선 1차원 배열은 어느정도 원래도 알고 있던 내용이라 수월하게 이해하며 넘어갈 수 있었는데 2차원 넘어가는 배열에서 갑자기 머리가 어지러웠다.
우선 랜덤 객체를 생성하는 부분부터 다시 보았다.
Random random = new Random(); // 랜덤 객체 생성
int[] numbers = new int[3]; // 3개의 숫자를 저장할 배열
랜덤 객체를 생성하고 numbers라는 이름의 int형 배열을 생성하면서 3개의 숫자를 저장할 수 있도록 만들어 주는 코드이다. 알고는 있었지만 오랜만에 보는 랜덤 객체 생성이라 적어두었다.
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = random.Next(1, 10);
}
그 다음으로 랜덤의 범위를 정해주는 for문을 만드는데 보통 배열에는 for문을 쓴다.
보면 배열은 0부터 시작이니까 i=0, numbers배열에 길이가 3이니까 .Length를 활용하여 길이 2까지 for문을 돌게하고 numbers배열에 랜덤으로 1~9까지의 숫자를 넣어주는 for문이다.
마침내 2차원 배열이다.
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차원 배열을 사용하려면 int[,]로 선언하면 된다고 한다.
배열을 5 x 5크기로 만들어놨고 for문을 선언하여 i를 0부터 4까지 반복되도록 만들고 그 안에 j도 0부터 4까지 반복되도록 만들었다. 거기서 만약 map배열의 i,j가 1과 같다면 1이라고 되어 있는 부분을 ■, 그게 아니라면 ㅁ이 나오도록 선언한다
그렇게 하면

이런 결과가 나오게 된다.
c#기초부터 시작하고 있어서 오늘은 그렇게 어렵지는 않았다. 하지만 이제 내일부터 해야할 부분들이 좀 어려운 것 같아서 각오 단단히 하고 내일은 더 높은 집중력으로 공부를 해야할 것 같다.
사실 아직 TIL쓰는게 익숙하지가 않아서 이런 식으로 쓰는게 맞는건지 잘 모르겠다. 우선 오늘 배운 내용을 일기창 처럼 쓰고 있는데 글쓰는 솜씨가 좋은 편이 아니라 횡설수설일 것 같긴 하다. 그래도 내일 TIL 관련해서 특강이 있다고 하니 열심히 강의 듣고 피드백 해야겠다.