반복문(Loop)
While문
루프는 지정된 조건에 도달하는 한 코드 블록을 실행할 수 있다.
지정된 조건이 True인 동안 코드블록을 반복 실행
한다.
주의 할 점은 조건 안의 변수값을 증가
시켜야 한다.
그렇지 않으면 무한 루프에 빠진다.
예시:
int i = 0;
while (i < 5)
{
Console.WriteLine(i);
i++;
}
Do/While문
do/while 루프는 while 루프의 변형이다.
이 루프는 조건이 true인지 확인하기 전에 코드 블록을 한 번 실행한 다음 조건이 true인 동안 루프를 반복
한다.
조건이 거짓이더라도 코드가 한 번은 실행
된다.
예시:
int i = 0;
do
{
Console.WriteLine(i);
i++;
}
while (i < 5);
For문
코드 블록을 반복하려는 횟수를 정확히 알고 있으면 while 루프 대신 for 루프를 사용한다.
예시:
for (statement 1; statement 2; statement 3)
{
// code block to be executed}
Statement 1 코드 블록이 실행되기 전에 (한 번) 실행됩니다.
Statement 2 코드 블록 실행 조건을 정의합니다.
Statement 3 코드 블록이 실행된 후에 (매번) 실행됩니다.
- 중첩루프
루프를 다른 루프 안에 배치하는 것도 가능하다.
이것을 중첩 루프라고 한다.
"내부 루프"는 "외부 루프"가 반복될 때마다 한 번씩 실행된다.
예시:
// Outer loop
for (int i = 1; i <= 2; ++i)
{
Console.WriteLine("Outer: " + i); // Executes 2 times
// Inner loop
for (int j = 1; j <= 3; j++)
{
Console.WriteLine(" Inner: " + j); // Executes 6 times (2 * 3)
}
}
// Outer: 1
// Inner: 1
// Inner: 2
// Inner: 3
// Outer: 2
// Inner: 1
// Inner: 2
// Inner: 3
Foreach문
배열의 요소를 반복하는 데만 사용되는
foreach 루프도 있다.
예시:
foreach (type variableName in arrayName)
{
// code block to be executed}
}
// 구체적인 예시
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
foreach (string i in cars)
{
Console.WriteLine(i);
}
// Volvo
// BMW
// Ford
// Mazda
Break / Continue
- Break : switch문에서 사용되기도 하고, 반복문에서 벗어날 때 사용하기도 한다.
- Continue : 지정된 조건이 발생할 경우 반복을 건너뛰고, 다음 루프로 넘어간다.
Break문 예시:
int i = 0;
while (i < 10)
{
Console.WriteLine(i);
i++;
if (i == 4)
{
break;
}
}
// 0
// 1
// 2
// 3
Continue문 예시:
int i = 0;
while (i < 10)
{
if (i == 4)
{
i++;
continue;
}
Console.WriteLine(i);
i++;
}
// 0
// 1
// 2
// 3
// 5
// 6
// 7
// 8
// 9
배열 (Array)
배열은 각 값에 대해 별도의 변수를 선언하는 대신 단일 변수타입에 여러 값을 저장하는 데 사용
// 빈 배열 선언
string[] cars;
// 값이 삽입된 배열 선언
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; // 문자열
int[] myNum = {10, 20, 30, 40}; // 정수
인덱스 번호를 참조하여 배열 요소에 액세스 할 수 있다.
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Console.WriteLine(cars[0]);
// Volvo
배열 요소 바꾸기
:
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
Console.WriteLine(cars[0]);
// Opel
배열 길이 구하기:
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Console.WriteLine(cars.Length);
// 4
배열을 선언하는 여러가지 방법:
// 배열의 크기만 생성
string[] cars = new string[4];
// 배열의 크기와 함께 값을 할당
string[] cars = new string[4] {"Volvo", "BMW", "Ford", "Mazda"};
// 배열의 크기는 지정하지 않고, 값만 할당
string[] cars = new string[] {"Volvo", "BMW", "Ford", "Mazda"};
// 배열의 크기는 지정하지 않고, 값만 할당
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
배열을 선언하고 나중에 초기화하는 경우 new 키워드를 사용
해야 한다.
배열을 초기화한다는 것은 배열에 처음으로 값을 할당하는 과정을 의미한다.
new 키워드를 사용하는 경우 기존의 배열은 사라지고, 새로운 배열이 할당된다.
배열의 정렬
배열은 알파벳순이나 오름차순으로 정렬하는 Sort()와 같은 다양한 배열 메서드를 사용하여 정렬할 수 있다.
- Sort()
// Sort a string
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Array.Sort(cars);
foreach (string i in cars)
{
Console.WriteLine(i);
}
// Sort an int
int[] myNumbers = {5, 1, 8, 9};
Array.Sort(myNumbers);
foreach (int i in myNumbers)
{
Console.WriteLine(i);
}
- System.Linq
Min, Max 및 Sum과 같은 다른 유용한 배열 메서드는 System.Linq 네임스페이스에 있다.
using System;
using System.Linq;
namespace MyApplication
{
class Program
{
static void Main(string[] args)
{
int[] myNumbers = {5, 1, 8, 9};
Console.WriteLine(myNumbers.Max()); // returns the largest value
Console.WriteLine(myNumbers.Min()); // returns the smallest value
Console.WriteLine(myNumbers.Sum()); // returns the sum of elements
}
}
}
다차원 배열
- 2차원 배열
2D 배열을 만들려면 자체 중괄호 세트 내에 각 배열을 추가하고 대괄호 안에 쉼표(,)를 삽입한다.
예시:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
단일 쉼표 [,]는 배열이 2차원임을 지정한다.
3차원 배열에는 int[,,]라는 두 개의 쉼표가 있다.
배열을 행과 열이 있는 테이블로 생각하면 쉽다.
- 2차원 배열에 엑세스하는 방법
예시:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]); // Outputs 2
배열 인덱스는 0부터 시작한다. [0]이 첫 번째 요소이다.
배열의 요소 변경:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5; // Change value to 5
Console.WriteLine(numbers[0, 0]); // Outputs 5 instead of 1
2차원 배열의 루프:
// Using foreach
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
// Using for
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
{
Console.WriteLine(numbers[i, j]);
}
}
메소드
메소드는 호출될 때만 실행되는 코드 블록이다.
매개변수라고 하는 데이터를 메서드에 전달할 수 있다.
메소드는 특정 작업을 수행하는 데 사용되며 함수라고도 한다.
메소드를 사용하는 이유는 코드의 가독성을 높이고,
반복되는 코드를 재사용하기 위함이다.
C#에서는 메서드 이름을 대문자로 시작하는 것이 권장된다.
예시:
class Program // 클래스 이름
{
static void MyMethod()
{
// code to be executed
}
}
'게임 & 게임개발 > C# 기초' 카테고리의 다른 글
객체지향 프로그래밍(Object Oriented Programming)이란 무엇일까? (3) | 2024.04.19 |
---|---|
클래스와 객체, 클래스 멤버 (2) | 2024.04.19 |
[C#기초] 문자열, if문, switch문 (0) | 2024.04.17 |
[C#기초] Tyep Casting(타입 캐스팅)과 Parameter(매개변수) (0) | 2024.04.16 |
C# 기초 Lv0 #3 | ToString함수와 Int32.Parse함수의 활용 (0) | 2023.04.26 |