오늘부터 배운 C# 문법을 기록해보도록 하겠습니다.
개인적으로 모든 프로그래밍 언어에서 가장 기본적이지만 가장 중요한 문법이 변수와 자료형이라고 생각합니다.
변수(變數)는 변하는 값을 나타내는 문자다. - 위키백과
Google에 변수를 검색했을 때 나오는 위키백과에 적혀있는 정의입니다.
어느 한 값에 고정되어 있지 않고 계속해서 값이 변하는 수라고 나와있습니다.
제가 배운 프로그래밍 언어에서의 변수는 이와 유사하지만 조금 다른 의미를 지니고 있습니다.
변수 : 프로그램이 진행되면서 내부에 저장된 값이 바뀔 수 있는 데이터
변수를 설명하기에 앞서, 상수부터 설명해야 이해가 빠르게 될 것 같습니다.
상수 : 내부에 저장된 값이 절대 바뀌지 않는 데이터
1234
Hello
위와 같이 1234라는 수는 코드가 진행된다 하더라도 그 값이 1234임은 변함이 없습니다.
Hello라는 문자열 또한 진행되면서 다른 문자열로 바뀌지 않습니다.
이러한 변하지 않는 수나 문자, 문자열 등을 상수라고 부릅니다.
이제 C#에서 변수를 어떻게 선언하고 초기화할 수 있는지부터 확인하고 변수에 대해서 설명하겠습니다.
int iVariable;
저는 int형 변수 iVariable을 선언해서 사용할 수 있게 만들었습니다.
변수에는 항상 데이터 타입(형식)과 변수의 이름이 필요합니다.

변수의 이름은 프로그래머가 원하는대로 지어줘도 상관없습니다.
변수의 생성에 중요한 것은 데이터 타입(형식)이라고도 불리는 자료형이라고 생각합니다.
1
제가 작성한 위 코드의 숫자 1은 숫자일까요? 문자일까요?
이 글을 보시는 분들은 제가 숫자로 사용할 것인지 문자로 사용할 것인지 확신을 하지 못하실 것이라 생각합니다.
여러분과 마찬가지로 컴퓨터 또한 그렇습니다.
제가 어떤 의도를 가지고 1을 작성했는지 컴퓨터 또한 알지 못합니다.
그래서 저는 컴퓨터에게 이 1을 어떻게 사용할 것인지 알려줘야 합니다.
이런 의도를 알려주는 것을 저는 자료형(데이터 타입, 형식)이라고 생각합니다.
자료형 : 컴퓨터에게 해당 변수에 저장된 데이터의 타입(형식)을 알려주는 것
최대한 쉽게 이해하실 수 있도록 짧은 지식을 살려 쉽게 작성하려 했으나 이해가 되지 않으실 수 있습니다.
그래서 코드를 통해서 설명을 하도록 하겠습니다.
int iOne = 1; //숫자 1을 저장한다.
char chOne = '1'; //문자 1을 저장한다.
아까는 그냥 1만 적어놨기 때문에 여러분이나 컴퓨터는 제가 숫자로 사용할 것인지 문자로 사용할 것인지 알 지 못했습니다.
그러나 지금처럼, 자료형을 명시해서 변수를 만들어 그 안에 저장한다면 여러분이나 컴퓨터는 제 의도를 아실 수 있습니다.
변수 iOne은 숫자를 저장해서 앞으로 그 안에 저장된 데이터는 모두 숫자로 사용하겠다는 의도입니다.
변수 chOne은 문자로 저장해서 그 안에 저장된 데이터는 숫자던 문자던 모두 문자로 사용하겠다는 의도이구요.
이처럼 프로그래머가 해당 변수에 저장한 데이터가 어떤 데이터이고, 어떻게 사용될 지를 컴퓨터에게 알려주는 역할을 하는 것이 자료형이라고 생각합니다.
C#에서 사용할 수 있는 자료형의 종류는 굉장히 많습니다.
같은 정수를 저장해도 자료형의 크기에 따라 자료형이 나뉘고, 정수가 아닌 실수를 저장하는 자료형, 문자를 저장하는 자료형, 문자열을 저장하는 자료형 등 프로그래머가 사용할 수 있는 자료형은 다양합니다.
그 중에서도 가장 대표적인 자료형들이 있습니다.

여기서 제가 가장 많이 사용하는 자료형으로는 bool, int, float, double, char, string이 있습니다.
아마 다른 프로그래머분들도 많이 사용하시지 않을까 생각되는 자료형들입니다.
이 자료형들의 특징으로는
bool - 참(true, 1), 거짓(false, 0)의 값을 가질 수 있는 1 byte 자료형
int - 대부분의 정수 값을 가질 수 있는 4 byte 자료형
float - 소수점 7자리까지의 실수 값을 가질 수 있는 4 byte 자료형
double - 소수점 15자리까지의 실수 값을 가질 수 있는 8 byte 자료형
char - 문자 하나를 저장할 수 있는 2 byte 자료형
string - 연속된 문자들을 저장할 수 있는 자료형
bool 자료형은 주로 if문의 조건으로 많이 사용하고 int는 정수를 저장할 때, float과 double은 실수를 저장할 때 많이 사용합니다.
위의 표에서 정수를 저장할 때 사용되는 자료형이 short, int, long 세 종류가 있는데 이 차이는 자료형의 크기로 인한 저장 가능한 값의 범위입니다.
short - 2 byte 크기로 -32,768 ~ 32,767까지의 정수를 저장할 수 있다.
int - 4 byte 크기로 –2,147,483,648 ~ 2,147,483,647까지의 정수를 저장할 수 있다.
long - 8 byte 크기로 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807까지의 정수를 저장할 수 있다.
그럼 그냥 더 큰 값을 저장할 수 있는 long 자료형으로 저장하면 되는거 아닌가?
컴퓨터는 시간과 공간을 가장 중요시 여긴다고 알고 있습니다.
쓸데없이 낭비되는 공간이 많을수록 응답 시간이 길어지기 때문에 int로도 충분히 표현할 수 있는 정수 값이라면 차지하는 공간이 2배인 long보다는 int를 사용해서 표현하는 것이 더욱 공간 효율적인 프로그램을 만들 수 있습니다.
이는 float과 double에도 똑같이 적용되어 float으로도 충분하다면 굳이 double을 사용하지 않는 것이 좋다고 알고 있습니다.
이제 자료형에 대한 얘기를 많이 한 것 같으니 다시 변수로 돌아오겠습니다.
변수 : 프로그램이 진행되면서 내부에 저장된 값이 바뀔 수 있는 데이터
위에서 제가 이렇게 적어놨었는데 설명보다는 코드로 보여드리는게 이해하기 쉬울 것 같습니다.

int형 변수 iVariable을 선언해서 =(대입 연산자)를 통해서 10이라는 상수를 iVariable에 저장했습니다.
이 변수 iVariable을 콘솔 출력 함수 WriteLine으로 출력해보겠습니다.

출력한 결과 저장했었던 10이란 값이 콘솔 창에 출력됐습니다.

이제 위의 코드에서 코드를 추가해 iVariable에 20을 저장하고 한번 더 출력해보겠습니다.

처음에는 10이 출력됐었는데 다음 줄에 20이 출력됐습니다.
이처럼 코드의 진행에 따라 내부에 저장된 값이 변할 수 있는 데이터를 변수라고 합니다.
int iVariable = 10;
(자료형) (변수의 이름) (상수)
int iVariable2 = iVariable;
(자료형) (변수의 이름) (변수)
보통 변수의 선언과 동시에 상수를 대입하거나 변수를 대입해서 초기화를 할 수 있습니다.
상수를 대입하는 경우 변수 내부에 상수 값이 저장되고 변수를 대입하는 경우 대입 연산자 우측에 위치한 변수의 데이터 값이 변수에 저장됩니다.
작성하고 보니 나름 장문의 글이 된 것 같습니다. 제가 아는 것들을 최대한 적기도 하고 아직 못적은 내용들도 있는데 너무 길어질 것 같아 여기까지 작성하고 기회가 되면 적어보도록 하겠습니다.