본문 바로가기
C# 기초문법

[C#] (2) 변수의 특징과 문법

by novices 2022. 9. 7.
반응형

변수는 프로그래밍에서 사용되는 최소의 데이터 저장 단위이며 값을 저장할 수 있습니다. 프로그래밍 중 변수의 저장된 값은 언제든 변경이 가능하지만 특별한 과정 없이는 변수를 만들 때 선언한 형태의 데이터만 할당할 수 있습니다. 이번 포스팅에서는 이러한 변수의 특징과 문법에 대해 알아보겠습니다.  

 

 

1. 변수의 특징

변수의 특징을 설명하기 위해 공구 상자에 비유하여 이야기해보겠습니다. 공구를 담기 위해 만든 상자에 공구를 보관하다가 필요할 때 상자를 열어 공구들의 변경은 언제든 가능합니다. 다만 공구상자에 공구가 아닌 다른 물건은 담을 수 없으며 공구의 양이 공구상자보다 클 경우에도 담을 수 없습니다. 다만 상자에 들어갈 수 있도록 공구량을 줄이면 보관이 가능합니다. 마지막으로 공구가 아닌 물건도 공구로 만들면 상자에 넣을 수 있습니다.

변수의 특징 설명 그림
변수의 특징

 

변수 특징 정리

  • 변수는 데이터의 유형과 저장되는 값을 통칭한다.
  • 변수는 데이터의 저장 단위이며 값을 저장할 수 있다.
  • 변수에 저장된 값은 변경이 가능하다.
  • 변수가 만들어질때 선택한 데이터와 다른 값은 저장할 수 없다.
  • 수가 만들어질때 선택한 데이터의 저장 가용량을 넘는 값은 저장할 수 없다.
  • 변수가 만들어질때 선택한 데이터와 다른 값도 선언한 데이터로 변환하면 저장할 수 있다.

 

 

2. 변수의 단위 (기본 데이터 유형)

C#에서 제공되는 기본 데이터 단위는 여러 종류가 있지만 대표적으로 가장 많이 사용되는 4가지 int, float, string, bool 단위가 있습니다. int는 정수를 저장하는 단위이고, float는 실수를 저장합니다. float는 소수점 표현으로 인해 int보다 더 큰 저장공간을 가지고 있고 이로 인해 계산 시 int에 비해 느리다는 단점이 있습니다. string은 문자열을 저장하고 bool은 "true", "false" 단 2가지 값만 저장할 수 있는 유형입니다.

변수단위 기본데이터 유형 설명
기본데이터 유형



기본 데이터 유형 정리

  • C#에서 가장 많이 사용되는 변수 단위는 int, float, string, bool이다.
  • int는 정수 형태의 데이터를 저장하는 유형이다.
  • flaot는 실수 형태의 데이터를 저장하는 유형이다.
  • float는 연산 시 int보다 느리다는 단점이 있다.
  • string은 문자열 형태의 데이터를 저장하는 유형이다.
  • bool은 참과 거짓("true", "false")의 데이터를 저장하는 유형이다.

 

 

3. 변수의 사용 문법

코드 작성 시 사용되는 문법입니다.

변수 선언의 구성 그림
변수 선언의 구성



순서에 맞게 데이터 유형, 이름, 값 순으로 들어가고 마지막에 세미콜론으로 하나의 명령이 끝났다는 걸 알려줘야 합니다. 중간에 보이는 "=" 부등호는 수학에서 봤던 기호와는 다르게 대입 연산자라고 부르며 연산자 기준 우항의 값을 좌항에 대입한다는 뜻을 가지고 있는 기호입니다.

 

변수의 문법 요점

  • 변수는 형태, 이름으로 선언하고 동시에 값을 할당한다.
  • 명령줄의 마지막에 세미콜론으로 명령줄의 끝을 알려야 한다.
  • 대입 연산자는 우항의 값을 좌항에 대입하는 뜻을 가지고 있다.

 

 

4. 알아야 할 사항

알아야 할 사항들이 작지 않습니다. 기억나는 것만 먼저 이야기하고 생각나는 것들을 추가할 예정입니다. 아래열되는 사항들은 다 외우지 마시고 한번 읽어보시면서 이런 게 있구나 하고 넘어가시면 되고 5번 코딩해보기에서 코드를 작성해 보면서 자연스럽게 익히는 걸 추천드립니다. 처음 접해서 거부감이 생기는 내용들은 여러 차례 조금씩 나눠서 습득하는 게 좋습니다. 문법은 어렵지도 않지만 외우지 않아도 코드에디터에서 잘못된 부분을 알려 줄뿐더러 필요할 때마다 찾아보고 하나씩 배워가는 게 학습을 이어나가는데 도움이 되기 때문입니다. 흥미를 잃으면 진행이 되지 않습니다.

 

4-1. 주석을 추가하여 가독성을 올립니다.

여기서 말하는 주석이란 코드 내에 컴파일러가 인식하지 않는 문자를 뜻하고 이를 코드 내에 작성하여 가독성을 올립니다 주석이 실제 코딩할 때 많은 도움이 됩니다.

// 정수형태의 공간을 만들고 이름을 number라고 지정한뒤 7을 저장해줘.
// 앞으로도 내가 number라고 말하면 지금 만들어진 이 공간을 지정하는거야.
int number = 7;

 

4-2. 할당되는 값에도 데이터 유형이 존재합니다.

기본 데이터 유형을 사용하여 4가지 변수를 선언하고 값을 할당했습니다. number에 할당된 값은 정수가 할당되었고 fingerLegth에 할당된 값의 끝에 들어간 f는 "float"의 줄임말입니다. 값뒤에 f를 붙여야 할당되는 값이 실수임을 인지하기 때문에 필수로 넣어야 합니다. name에 할당된 값은 문자열인데 문자에 대한 데이터는 꼭 큰따옴표 안에 작성을 해야 문자열임을 인식합니다. areYouAnAdult에 할당되는 값은 true와 false 둘 중의 하나의 값만 할당할 수 있습니다. 

int number = 7;
float fingerLength = 9.7f;
string name = "James";
bool areYouAbAdult = true;

 

4-3. 정수와 문자열에 포함된 정수는 다릅니다.

정수 타입의 number에 할당된 값은 숫자 1234567을 뜻하고 name에 할당된 것은 "1234567"이라는 글자입니다.

int number = 1234567;
string name = "1234567";

 

4-4. 같은 코드 내에 같은 변수 이름을 사용할 수 없습니다.

아래와 같이 동일한 변수명을 쓸 경우 컴파일 에러로 프로그램이 실행되지 않습니다.

int name = 1234567;
string name = "1234567";

 

4-5. 이미 선점된 키워드는 사용할 수 없습니다.

float는 이미 선점된 키워드이기 때문에 변수 이름으로 사용할 수 없습니다.

int float = 3;

 

4-6. 연산 및 형 변환

아래의 코드 블록을 확인해 보세요.

  • 정수끼리의 연산한 결과는 정수 형태의 변수에 저장할 수 있습니다.
  • 실수끼리의 연산한 결과는 실수 형태의 변수에 저장할 수 있습니다.
  • 정수와 실수의 연산은 실수가 더 넓은 범위의 숫자 표현이 가능하므로 정수를 실수로 변환하여 실수끼리의 계산을 하고 결과 또한 실수로 나옵니다. 그러므로 해당 결과의 값은 실수 형태의 변수에 저장할 수 있습니다.
  • 문자열과 숫자의 덧셈은 숫자를 모두 문자열로 변환돼 결과가 문자열로 나오기 때문에 위의 값과 동일하게 문자열 형태의 변수에 저장할 수 있습니다. 
  • 위의 두 개의 항목처럼 계산되는 데이터의 형태가 자동으로 변환되는 걸 자동 형 변환이라 부릅니다.
  • 변수 앞에 ()를 열어 변환될 형태를 입력하여 수동 형 변환을 할 수 있습니다.
int summary;
int number1 = 15;
int number2 = 10;

float floatSummary;
float floatNumber1 = 2.5f;
float floatNumber2 = 4.5f;

string stringSummary;
string name = "James";

// 연산기호
summary = number1 + number2; //더하기           결과값 : 25
summary = number1 * number2; //곱하기           결과값 : 150
summary = number1 - number2; //빼기             결과값 : 5
summary = number1 / number2; //나누기           결과값 : 1
summary = number1 % number2; //나머지값구하기    결과값 : 5

// 정수와 실수의 연산 (자동 형변환)
floatSummary = number1 * floatNumber1;	// 결과값 : 37.5

// 문자열과 숫자의 덧셈 (자동 형변환)
stringSummary = name + floatNumber1;	// 결과값 : James2.5

// 정수와 실수의 연산 결과값을 정수변수에 할당 (수동 형변환)
// floatNumber2를 정수로 형태 변환하여 정수 Number2와 계산됩니다.
// 계산전에 floatNumber2가 정수로 형변환되며 가지고 있던 소수점값 0.5를 잃게됩니다.
summary = (int)floatNumber2 * number2;	// 결과값 : 40

 

 

5. 코딩 및 실행해 보기

C# 프로젝트를 열어 코드를 입력해 봅니다. 구성하는 방법은 별도의 포스팅이 있으니 참고해주세요.

이전 포스팅을 통해 C# 개발환경을 구성하였다면 프로젝트 내의 Promgram.cs를 수정해서 진행합니다.

4번 알아야 할 사항에 있는 것들을  실제로 코딩 및 실행해서 이해하는 게 목표입니다.

 

실행 준비하기

1. vscode에서 만들어진 프로젝트를 열고 Program.cs를 아래와 같이 수정합니다.

2. 작성하는 코드는 주석으로 표시된 곳에 작성합니다.

3. 작성이 완료되면 F5를 눌러 터미널 팝업에서 결과를 확인합니다.

4. 주의사항 - 프로그램은 실행 시 문제가 없다면 모두 실행 후 터미널을 자동 종료하기 때문에 결과를 확인할 수 없는데 Console.ReadKey() 구문을 추가해 키 입력을 받아야 종료되도록 하였습니다.

 

using System;

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            // 이곳에 코드 작성을 합니다.
            
            Console.ReadKey();
        }
    }
}

 

코딩을 통해 배울 내용 요점

  •  vscode에서 프로그램 실행 방법을 알아본다.
  • 각 유형에 따라 변수를 선언 값 할당하며 값이 어떻게 표시되는지 알아본다.
  • 선언과 할당은 별도로 명령할 수 있으며 명령의 마지막에는 세미콜론을 표기한다.
  • 사칙 연산을 수행하고 콘솔을 통해 결과를 확인한다.
  • 값의 형태를 변환하여 변수에 할당해 본다.
  • 4번 항목의 알아야 할 사항의 케이스들을 하나씩 코딩하면서 결과를 확인한다.

 

 

6. 예시 코드

예제에 사용되었던 참고용 코드입니다. 이번에는 C# 변수의 특징과 문법에 알아보았습니다. 다음 포스팅에는 조건에 따라 명령을 분기시키는 방법에 대해 작성할 예정입니다.

using System;

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {

            int number = 7;
            float fingerLength = 9.7f;
            string name = "James";
            bool areYouAbAdult = true;

            Console.WriteLine(number +"번 죄수 " + name + "의 손가락 길이는" + fingerLength + " 입니다." + areYouAbAdult);

            int summary;
            int number1 = 15;
            int number2 = 10;

            float floatSummary;
            float floatNumber1 = 2.5f;
            float floatNumber2 = 4.5f;

            string stringSummary;

            // 연산기호
            summary = number1 + number2; //더하기
            Console.WriteLine("더하기의 결과: " + summary);
            summary = number1 * number2; //곱하기
            Console.WriteLine("곱하기의 결과: " + summary);
            summary = number1 - number2; //빼기
            Console.WriteLine("빼기의 결과: " + summary);
            summary = number1 / number2; //나누기
            Console.WriteLine("나누기의 결과: " + summary);
            summary = number1 % number2; //나머지값구하기
            Console.WriteLine("나머지값의 결과: " + summary);

            // 정수와 실수의 연산 (자동 형변환)
            floatSummary = number1 * floatNumber1;
            Console.WriteLine("정수와 실수의 연산 결과: " + floatSummary);

            // 문자열과 숫자의 덧셈 (자동 형변환)
            stringSummary = name + floatNumber1;
            Console.WriteLine("문자열과 실수의 연산 결과: " + stringSummary);

            // 정수와 실수의 연산 결과값을 정수변수에 할당 (수동 형변환)
            // floatNumber2를 정수로 형태 변환하여 정수 Number2와 계산된다.
            // 계산전에 floatNumber2가 정수로 형변환되며 가지고 있던 소수점값 0.5를 잃게된다.
            summary = (int)floatNumber2 * number2;
            Console.WriteLine("형변환된 실수와 정수의 연산 결과: " + summary);

            Console.ReadKey();
        }
    }
}

 

 

반응형

댓글