티스토리 뷰

반응형

1. 변수

C# 에서 변수란 다음과 같이 선언합니다

int x;

int ⇒ 데이터 형식

x ⇒ 변수의 이름

; ⇒ 문장 끝

이렇게 하면 컴파일러는 int 형식을 위해 메모리 공간을 할당하고 이 공간을 x라는 식별자가 사용할 수 있도록 준비합니다.

선언된 int형 변수 x에는 대입 연산자를 통해 데이터를 입력할 수 있습니다.

int x = 100;

하지만 x 에 10000000000을 선언하면 어떻게 될까요?


입력

using System;

namespace blog_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 10000000000;
            Console.WriteLine(x);
        }
    }
}

출력

오류    CS0266    암시적으로 'long' 형식을 'int' 형식으로 변환할 수 없습니다. 명시적 변환이 있습니다. 캐스트가 있는지 확인하세요.

이처럼 오류가 발생하게 됩니다.

C#이 제공하는 기본 데이터 형식에는 모두 15가지가 있는데 이들은 크게 숫자 형식, 논리 형식, 문자열 형식, 오브젝트 형식으로 나누어집니다.

숫자 데이터 형식부터 시작해보겠습니다

2. 데이터 형식

2-1 정수 형식

다음에 표에는 C#이 제공하는 9가지의 정수 계열 데이터 형식이 나타나 있습니다. 표의 제일 왼쪽 칸에는 데이터 형식의 이름이 있고, 맨 오른쪽 칸에는 해당 데이터 형식이 담을 수 있는 값의 범위가 기록되어 있습니다.

데이터 형식 크기 담을 수 있는 값의 범위
byte 1 0 ~ 255
sbyte 1 -128 ~ 127
short 2 -32.768 ~ 32.767
ushort 2 0 ~ 65.535
int 4 -2.147.483.648 ~ 2.147.483.647
uint 4 0 ~ 4.294.967.295
long 8 -922.337.203.685.477.508 ~ 922.337.203.685.477.508
ulong 8 0 ~ 18.446.744.073.709.551.615
char    

 

아까 int x에 int의 값의 최대 범위인 2.147.483.647 보다 큰 10000000000을 선언하였기 때문에 오류가 발생하였습니다.

이해가 되셨나요?

2-2 소수점 형식

소수점 형식은 다음과 같습니다.

데이터 형식 크기  담을 수 있는 값의 범위
float 4 -3.402823e38 ~ 3.402823e38
double 8 -1.79769313486232e308 ~ 1.79769313486232e308

여기서 그러면 이런 생각이 드실 수 있을겁니다

"정수 형식을 쓸 필요 없이 소수점 형식만 사용하면 되겠네요!"

하지만 그것은 현명하지 못한 생각입니다. 그 이유는 다음과 같습니다

  1. 소수점 형식은 산술 연산 과정이 정수 계열 형식보다 복잡해서 느리다.
  2. 소수점 형식은 소수점을 표현하기 위해 일부 비트를 사용하기 때문에 같은 크기의 정수 계열 형식과 같은 크기의 수를 표현할 수 없다.

예제를 통해 선언을 해보겠습니다


입력

using System;

namespace blog_2
{
    class Program
    {
        static void Main(string[] args)
        {
            float x = 3.1415926535f;
            double y = 3.1415926535;

                        Console.WriteLine(x);
                        Console.WriteLine(y);
        }
    }
}

출력

3.1415927
3.1415926535

(float 형식 변수에 값을 할당하려면 숫자 뒤에 f를 붙여줘야 합니다)

출력 결과를 살펴봅시다.

입력한것은 float와 double 전부 다 3.1415926535인데 x는 3.1415927 까지만, y는 3.1415926535까지 출력이 되었습니다. x와 y가 각각 자신의 가수부가 담을 수 있는 부분까지만 저장하고 나버지는 버렸기 때문입니다.

2-3 문자 형식

char 형식은 정수를 다루는 데이터 형식이지만 수가 아닌 "가", "나", "다", "a", "b"와 같은 문자 데이터를 다룹니다. 반드시 정의할때에는 따옴표 "와"로 감싸줘야 합니다.

예제를 통해 선언을 해보겠습니다


입력

using System;

namespace blog_2
{
    class Program
    {
        static void Main(string[] args)
        {
            char a = "테";
                        char b = "스";
                        char c = "트";

                        Console.Write(a);
                        Console.Write(b);
                        Console.Write(c);
        }
    }
}

출력

테스트

위 예제에서는 char 형식에 각각 a, b, c변수를 할당하여 "테스트" 문자를 출력하였습니다. 이 세개의 문자를 한번에 담아서 처리할 수 있는 방법도 있습니다. 그것이 바로 string 형식입니다.

2-4 문자열 형식

string 형식은 정해진 크기나 담을 수 있는 데이터의 범위가 따로 정해져 있지 않습니다. 변수가 담는 텍스트 양에 따라 그 크기가 달라지기 때문입니다.

예제를 통해 선언을 해보겠습니다


입력

using System;

namespace blog_2
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = "구독과 좋아요";

                        Console.WriteLine(a);
        }
    }
}

출력

구독과 좋아요

간단하죠?

문자 형식과 문자열 형식이 헷갈리시는 분들을 위해 다시 한번 짚어드리자면,

char 형식은 개별 문자를 표현하기 위해 사용,

string 형식은 문자열을 표현하기 위해 사용합니다.

2-5 논리 형식

논리형식이 다루는 데이터는 참(true) 혹은 거짓(false) 딱 이 두가지 입니다

데이터 형식 크기  범위
bool 1 true or false

예제를 통해 선언을 해보겠습니다.


입력

using System;

namespace blog_2
{
    class Program
    {
        static void Main(string[] args)
        {
                        bool a = true;
                        bool b = false;
                        Console.WriteLine(a);
                      Console.WriteLine(b);
        }
    }
}

출력

True
False

논리형식은 주로 if, while 등등 조건문에서 많이 사용됩니다.

조건문, 반복문을 배우지 않았으니 아직은 이런게 있다하고 넘어가시고 나중에 다시한번 설명해드리겠습니다.

이로서 오늘은 변수를 선언하는법, 변수에 데이터를 담는법을 배워보았습니다.

다음 3강에서는 변수 형식을 변환하는 방법에 대해 알아보겠습니다.

반응형

'C# > C# 초급' 카테고리의 다른 글

C# 초보 강좌 1 - 구조  (0) 2020.12.20
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함