내일배움캠프 TIL

내일배움캠프 6일차 TIL "C#의 자료형, 변수, 연산자"

Jooglorystar 2024. 9. 19. 21:08

 

내일배움캠프 1주차는 '게임 개발이 처음이어도 쉽게 배우는 모바일 게임 개발'강의를 보고 따라하며 유니티 엔진에 대해 간단하게 알아보는 주차였다.

2주차에서는 본격적으로 C# 문법을 배우고, 이를 기반으로 간단한 텍스트 게임을 만드는 주차이다.

앞으로의 포스팅에서은 Microsoft Visual Studio 2022를 이용하며, 프레임워크는 .NET 6.0를 이용할 계획이다.

 

 

1. 자료형

C#에서는 여러 자료형들이 쓰인다.

sbyte, byte, short, ushort, int, uint, long, ulong은 정수 자료형,

long, ulong, float, double, decimal은 실수 자료형,

char 은 문자 자료형,

string은 문자열 자료형,

bool은 논리값 자료형이다.

 

정수 자료형과 실수 자료형은 저장하는 범위에 따라 다양한 자료형이 있는데,

이는 메모리 크기를 효율적으로 사용하기 위해 분리가 된 것이다.

예를 들면, sbyte 자료형은 -128~ 127범위의 정수 밖에 저장할 수 없지만,

int 자료형은 -2,147,483,648 ~ 2,147,483,647 범위의 정수를 저장할 수 있다.

만약 저장하고자 하는 어떤 값이 -128~ 127 범위 내에 있으며, 벗어날 일이 없다면 sbyte 자료형을 사용하는 것이 메모리를 효율적으로 사용할 수 있는 방법이다.

 

 

2. 변수

 

변수를 사용하기 위해서는 변수의 선언과, 초기화가 필요하다.

변수를 선언하기 위해서는 자료형과 변수이름을 다음의 예시와 같이 적으면 된다.

 

int num;        // num이란 이름을 가진 int형 변수

string str;         // str이란 이름을 가진 string형 변수

bool isTrue;          // isTrue이란 이름을 가진 bool형 변수

 

다음과 같이 변수를 여러 개 선언할 수도 있다.

 

int num1, num2, num3;        // num1, num2, num3의 이름을 가진 int형 변수들

 

변수를 선언한 뒤에는 변수의 값을 초기화 해줘야한다. 위에서 선언된 변수들을 다음과 같이 초기화 할 수 있다.

 

num = 10;         // int형 변수 num의 값은 10;

str = "Hello, World!";           // string형 변수 str의 값은 Hello, World!

isTrue = true;            // bool형 변수 isTrue의 값은 true

 

위 처럼 선언과, 초기화를 따로 할 수도 있지만, 선언과 초기화를 같이할 수도 있다.

 

int num = 10;

string str = "Hello, World!";

bool isTrue = true;

 

 

 

3. var 키워드

 

C#에는 var 키워드를 이용해 변수를 선언할 수 있다.

 

var num = 10;

var str = "Visual Studio"

 

위와 같이 변수를 초기화 하며 자료형을 선언할 경우, C#의 컴파일러가 자동으로 초기화된 값에 맞는 자료형을 지정해준다.

위의 예시에서는 num에는 int 자료형으로 선언되며, str에는 string 자료형이 선언된다.

위와 같은 상황에서는 굳이 var를 이용하지 않아도 되지만, 어떤 자료형을 받을지 정확하게 알 수 없는 경우에 var를 유용하게 사용할 수 있다. 

 

4. 연산자

 

C#에서는 다양한 연산자를 제공한다.

크게 나누자면

1. 정수와 실수를 계산하는데 사용하는 산술연산자

2. 값을 비교해 참(True), 거짓(False)을 반환하는 관계연산자

3. 참, 거짓의 관계로 다시 참, 거짓을 도출할 수 있는 논리 연산자

 

4.1. 산술연산자

 

산술 연산자는 주로 정수나 실수 값에 이용되며, 일상생활에서 사용하는 사칙연산이라고 볼 수 있다.

 

 

덧셈, 뺄셈, 곱셈은 직관적으로 이해가 가능하지만,

몫과 나머지의 계산은 다소 헷갈릴 수 있다.

 

 

 

두번째 예시와 같이 7 / 3 의 값으로는 2가 나오고, 7 % 3 의 값은 1이 나온다.

정수형 계산의 경우, '/' 연산자를 이용하면 소수점 값이 나오는 것이 아니라, 오직 몫 값만이 나온다.

 

4.1.a. 복합 대입 연산자

 

산술연산자는 위 처럼 result = num1 + num2; 같은 식으로 사용도 가능하지만,

num1 += num2; 처럼 num1 값에 num2값을 바로 계산할 수도 있다.

이를 복합 대입 연산자라고 한다.

산술연산자 5가지를 모두 복합 대입 연산자를 이용해 계산할 수 있다.

 

4.1.b. 증감 연산자

 

만약 특정 변수의 값의 변화가 1씩 이루어진다면 '++'이나 '--'와 같은 증감연산자를 이용할 수 있다.

증감 연산자는 다음과 같이 이용한다.

 

'++'를 이용할 경우, 값을 1 더한다.

'--'를 이용할 경우, 값을 1 뺀다.

 

이는 num += 1;이나 num -= 1; 와도 같은 값을 내지만,

증감이 1으로만 이루어질 경우, 증감연산자를 이용하는 것이 더욱 간결하다.

 

다만, 증감연산자가 ++num; 이나 --num; 처럼 변수 앞에 오는 경우가 있는데,

이 경우는 계산이 다소 바뀐다.

 

다음의 예시를 확인할 수 있다.

 

 

증감 연산자를 이용한 상태로 출력을 할 경우, 그 차이를 확실하게 알 수 있다.

증감 연산자가 앞에 올 경우(전위), 증감연산자가 적용된 값이 출력이 되지만,

증감 연산자가 뒤에 올 경우(후위), 적용되기 전 값이 출력되며, 다음에 변수를 불러올 경우, 앞에 증감 연산자가 적용된 값으로 출력된다.

이는 증감연산자의 위치에 따라, 증감연산자가 적용되는 시점이 달라지기 때문이다.

Console.WriteLine() 의 상황에서는,

++num 의 경우, 증감연산자가 적용된 후에 값이 출력된다면,

num++의 경우 일단 num 값이 출력된 후에, 증감 연산자가 적용된 것이다.

그렇기 때문에 그 다음에 num 값을 출력했을 때, 증감 연산자가 적용된 값이 출력된다.

 

 

4.2. 관계 연산자

 

관계 연산자는 두 값을 비교해 참, 거짓을 반환하는 연산자이다.

 

 

예시를 보면 직관적으로 알 수 있다고 생각한다.

같음을 비교하는 관계연산자가 '='가 아닌 '=='에 주의한다.

 

 

4.3 논리연산자

 

논리 연산자는 참, 거짓 값을 대상으로 사용된다.

다음과 같은 예시를 들 수 있다.

 

'&&'은 AND와 같이 양 값이 모두 true일 때 true를 반환한다. 

'||'은 OR와 같아, 둘 중 하나가 true일 경우에 true를 반환한다. 4번째 처럼 둘다 false인 경우 false값이 나온다

'!'은 값 앞에 붙이는데, NOT으로, true는 false로, false는 true로 바꾼다.