Wednesday, September 5, 2012

변수(Variables)

프로그램이 나타내는 구체적인 개념들은 변수라고 불립니다. 대기의 온도를 예로 들 수 있는데, 자동차 엔진 하나라는 복잡한 물체 또한 프로그램에서는 변수가 될 수 있습니다.

모든 변수들은 모두 자신만의 타입(type)를 가지고 있으며 그에 걸맞는 특정한 값을 가지고 있습니다. 대부분의 변수들은 변수로써의 구체적인 이름을 가지고 있지만 몇 변수들은 구체적인 이름을 가지지 않는 경우도 있습니다.

변수에 대한 예를 좀 더 들어보자면 학교 내의 학생수 또한 변수라고 볼 수 있습니다. 학생수는 소수가 아닌 양의 정수로 딱 떨어지므로 이때는 int타입이 적절하다고 볼 수 있으며 변수의 이름은 studentCount로 하면 적절하겠습니다.

D의 문법에 따르자면 변수는 변수의 타입을 먼저 지정하고 그 뒤에 변수의 이름을 붙여서 생성합니다. 변수를 생성하는 작업을 프로그래밍에서는 변수의 정의(혹은 선언)라고 합니다. 한번 변수가 정의되면 그 변수의 이름은 변수가 가진 값을 지칭하게 됩니다.

import std.stdio;

void main()
{
    // The definition of the variable; this definition
    // specifies that the type of studentCount is int:
    int studentCount;

    // The name of the variable becomes its value:
    writeln("There are ", studentCount, " students.");
}
프로그램을 실행하면 다음과 같은 결과를 볼 수 있습니다:
There are 0 students.
결과에서 알 수 있듯이 변수 studentCount의 값은 0입니다. 앞의 변수의 타입에 대해서 설명 했듯이 int의 초기 값은 0 입니다.

그리고 변수의 이름 studentCount 직접적으로 결과 값으로 출력되지 않습니다. 그러니까 결과가 "There are studentCount students"와 같이 출력되진 않는다는 것이죠.

변수의 값은  연산자 =를 통해 변경 가능합니다. 연산자 =는 변수에 새로운 값을 할당하기 때문에 이 연산자는 할당 연산자라고 불립니다.
(역자 주: = 이 부호가 한글로 할당 연산자라고 불리는지는 자신할 수 없습니다. 원문에서는 assignment operator이라고 기재 되어 있으며 저 또한 이렇게 부릅니다.)
import std.stdio;

void main()
{
    int studentCount;
    writeln("There are ", studentCount, " students.");

    // Assigning the value 200 to the studentCount variable:
    studentCount = 200;
    writeln("There are now ", studentCount, " students.");
}
There are 0 students.
There are now 200 students.
변수가 생성되는 순간에 변수의 값이 주어집니다. 이 말은 즉슨 변수에 값이 할당되기 전에는 변수를 사용 할 수 없다는 것을 의미합니다.
(역자 주: int와 같은 변수는 정의 되는 순간에 0이라는 초기 값을 가지지만 가끔은 null 값을 가지게 되는 경우도 있습니다. null의 개념은 후에 나옵니다. 현재로서는 비어있는 값, 쓸수 없는 값 정도로 이해 하시면 되겠습니다.)
import std.stdio;

void main()
{
    // Definition and assignment at the same time:
    int studentCount = 100;

    writeln("There are ", studentCount, " students.");
}
There are 100 students.

연습문제

  • 변수 2개를 정의하고 "I have exchanged 20 Euros at the rate of 2.11"을 출력하세요. 여기서는 소수의 표현을 위해 double 타입을 쓰는것이 적절하겠습니다.

역자 주 : 여기 있는 프로그램의 예제들은 전부 영어로 되어 있고 주석도 영어로 되어 있습니다.
주석은 왜 번역 하지 않았나? 하실지 모르겠습니다.
왜냐 하면 코드를 복사해서 붙여 넣을때 시스템에 따라서는 한글이 컴파일이 되지 않는 경우가 있기 때문입니다. 프로그램을 공부할때 복잡한 예외 상황을 겪고 싶지 않으시다면 간단한 영어는 그냥 쓰시는게 편합니다.

No comments:

Post a Comment