[C#] 기초 문법

리터럴(literal)

리터럴은 번영하면 ‘문자 그대로의’ 의미지만 프로그래밍에서는 ‘상수’, ‘값’ 등을 의미합니다.

string text = "Hello World";
int num = 10;
char ch = 'A';

코드에서 “Hello World”, 10, ‘A’ 값은 모두 리터럴입니다.


변수(Variable)

변수는 선언한 형식에 맞게 메모리에 할당되어 값을 담는 역할을 합니다.

int No = 20; // 저장소 이름: No, 크기: 4Byte, 값: 20

변수는 값 형식(Value Type)과 참조 형식(Reference Type)이 있습니다.


값 형식

값 형식인 변수는 ‘값’이 스택 영역에 할당 되어있습니다.

값 형식 변수는 아래와 같습니다.

  • char
  • sbyte
  • byte
  • short
  • ushort
  • int
  • uint
  • long
  • ulong
  • float
  • double
  • decimal
  • bool

참조 형식

참조 형식인 변수는 값을 담기 위해 힙 영역에 메모리를 할당하고 스택의 변수 값은 힙 데이터 주소를 가리킵니다.

참조 형식 변수는 아래와 같습니다.

  • string
  • 배열
  • 클래스
  • object

참조 형식인 변수는 초기화 하지 않으면 0(null)을 담게 됩니다.


배열

배열을 표시하려면 아래와 같이 new 예약어와 함께 대괄호 [] 를 사용합니다.

대괄호 안에 배열 크기를 입력하면 힙에 그 크기만큼 배열을 생성합니다.

int[] arr1 = new int[5] {1,2,3,4,5}; 

배열 크기를 지정하지 않은 상태로 초기화 가능합니다

int[] arr2 = new int[] {1,2,3,4,5,6,7,8,9,10}; // 배열 요소 개수 미지정

다차원 배열

대괄호 안에 쉼표(,)를 입력하여 다차원 배열 표현이 가능합니다

int[,] arr3 = new int[5, 10]; // 2차원 배열
int[,,] arr4 = new int[5, 10, 15]; // 3차원 배열

초기화 방법은 위와 비슷합니다.

int[,] arr5 = new int[3, 2] { {0, 1}, {2, 3}, {4, 5} };

가변 배열

가변 배열은 아래와 같이 사용 가능합니다

int[][] arr6 = new int[2][];
arr6[0] = new int[10]; // 0번째엔 10개의 요소
arr6[1] = new int[20]; // 1번째엔 20개의 요소

if 문

선택을 위한 문법 중 if문이 가장 기본입니다.

System.Char ch = 'A';
System.UInt16 ui16 = 0x0041;
if (ch == ui16)
    Console.WriteLine("Unicode A is 0x0041");
else
    Console.WriteLine("Unicode A is not 0x0041");

조건을 계속 붙인다면 else if 를 붙이면 됩니다.


삼항연산자

if-else를 사용하면 여러 줄이 되는데, 삼항연산자로 한줄로 표현할 수 있습니다.

bool isSame = (ch == 'A') ? true : false;
Console.WriteLine("is Same? " + isSame);

switch 문

if-else if-else 문에서 else if 가 많아지면 switch문을 사용하면 좋습니다.

switch(ch)
{
    case 'A':
        Console.WriteLine("A");
        break;
    case 'B':
        Console.WriteLine("B");
        break;
    case 'C':
        Console.WriteLine("C");
        break;
    default:
        Console.WriteLine("Else");
        break;
}

C++과 다르게 문자열도 가능합니다

System.String text = "Kor";
switch (text)
{
    case "Kor":
    case "한국":
        Console.WriteLine("한국입니다.");
        break;
    case "Jap":
    case "일본":
        Console.WriteLine("일본입니다.");
        break;
    case "USA":
    case "미국":
        Console.WriteLine("미국입니다.");
        break;
    default:
        Console.WriteLine("그 외 국가 입니다.");
        break;
}

for문

반복을 위한 가장 기초적인 문법입니다.

for(int i = 0; i < 10; i++)
{
    Console.WriteLine("i: " + i);
}

foreach문

for문과 다르게 배열의 요소를 가져와 사용하는 반복문입니다.

int[] arr = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
foreach(int element in arr)
{
    Console.WriteLine("element: " + element);
}

while문

for문과 비슷한 반복문 입니다.

int Num = 0;
while(Num < 10)
{
    Console.WriteLine("Num: " + Num);
    Num++;
}

깃헙