개요
데이터는 숫자, 문자 등을 이야기 합니다. 프로그래밍의 장점은 여러 데이터를 저장할 수 있다는 점입니다.
계산기를 예로 들자면, 우리는 종종 계산 결과를 어딘가에 저장하고 다른 계산을 하고 싶을 때가 있을 것입니다. 비싸고 좋은 공학용 계산기는 결과를 저장하는 메모리가 많이 들어있지만, 마트의 싸구려 계산기는 저장 기능이 아예 없습니다. 프로그램은 저장 공간을 무한대로 제공한다는 점에서 아주 성능 좋은 계산기라고 할 수 있습니다.
PAWN에서 데이터는 크게 정수(int), 실수(float), 참거짓(bool)으로 나눠집니다. 하나씩 사용해 보겠습니다.
정수형 변수 및 덧셈
정수형(int) 데이터를 저장하고 덧셈을 진행하는 간단한 프로그램을 작성해 보겠습니다.
#include <a_samp> main() { new a = 100; new b = 50; new sum = a + b; printf("%d",sum); }
위 코드에서 new 키워드가 변수를 선언하는 키워드입니다. 변수(variable)란 데이터를 저장하는 공간입니다. 변수에는 우리가 원하는대로 이름을 지정할 수 있습니다.
a, b, sum이라는 세 개의 변수가 선언되었습니다. a와 b에는 각각 100과 50이라는 값이 저장되었고, sum에는 a와 b를 더한 값이 저장되었습니다.
a, b, sum은 변수의 이름이며, 여러분이 원하는 이름으로 마음껏 변경 가능합니다. 다만 변수의 이름에는 몇 가지 규칙이 있습니다.
- 영어와 숫자, 언더바(_)만 사용할 것 (예: Player_Money)
- 맨 앞에 숫자가 오면 안됨 (예: 321abc, 1apple)
- 대소문자 구별됨 (예: abc와 aBc는 다른 변수)
- 32글자 제한
printf()는 sum 변수를 콘솔 창에 출력해 줍니다. printf() 함수의 자세한 사용법은 출력 챕터에서 배울 것이므로, 본 예제에서는 그대로 따라 작성하시면 됩니다.
위 예제를 통해 아래와 같은 내용을 배울 수 있습니다.
- 변수를 선언하는 방법
- 변수에 값을 넣는 방법
- a + b 처럼 변수들끼리의 연산이 가능하다는 점
실수형 변수 및 연산
이번에는 실수(float)에 대해 배워 보겠습니다. 실수는 변수 선언 방식이 조금 다릅니다.
new Float:width = 25.5; new Float:height = 12.5; new Float:area = (width*height) / 2; printf("%f",area);
정수(int)와는 다르게, 변수 이름 앞에 Float: 라는 태그가 붙었습니다. 이것은 PAWN 언어가 변수를 실수(float)로 선언하는 방법입니다. 정해진 규칙이므로 그대로 따라주시면 되겠습니다.
위 예제는 삼각형의 가로(width)와 세로(height)를 이용하여 넓이(area)를 계산하는 코드입니다. 실행해 보시면 159.375000 라는 결과가 나오는 것을 확인하실 수 있습니다.
area를 계산할 때 (width*height) 와 같이, 먼저 계산하고 싶은 식을 괄호로 묶을 수 있습니다.
참거짓 변수 및 조건문
이번에는 참거짓(boolean) 변수를 사용해 보겠습니다. 빠른 이해를 위해 조건문을 사용하였는데, 자세한 내용은 조건문 챕터에서 배우므로 그대로 따라 작성하시면 됩니다.
new bool:IsSleeping = true; if(IsSleeping) printf("He is sleeping!"); else printf("He is awake!");
위 예제에서는 IsSleeping 변수를 bool: 태그를 붙여서 선언하였습니다. 역시나 PAWN 언어의 규칙이며, 이렇게 선언하면 IsSleeping 변수는 true와 false만 저장할 수 있는 참거짓(bool) 변수가 됩니다.
if( 조건 ) 은 조건이 true일 때 if 아래의 코드를 실행하며, false일 경우 else의 코드를 실행하는 조건문입니다. 자세한 내용은 조건문 파트에서 배우게 되므로 이해가 되지 않아도 걱정하지 마시기 바랍니다.
위 예제에서는 IsSleeping이 true이기 때문에 He is sleeping! 이 출력되게 됩니다. 만약 IsSleeping을 false로 바꾸고 실행하면 He is awake! 가 출력될 것입니다.
참고 사항으로는, 아래 코드의 if문은 전부 동일한 기능을 하게 됩니다.
if(IsSleeping) if(IsSleeping == true) // (true == true) 이므로 true가 됨 if(IsSleeping == 1) // (true == 1) 이므로 true가 됨
다양한 boolean 표현
boolean 변수는 true와 false 이외에 숫자를 입력할 수 있습니다. PAWN에서는 숫자 0을 false로, 나머지 모든 숫자를 true로 간주합니다. 다양한 true, false 표현은 아래 코드의 예제로 확인할 수 있습니다.
new bool:IsSleeping; IsSleeping = true; IsSleeping = 1; // true IsSleeping = 54321; // true IsSleeping = -123; // true IsSleeping = 0; // false IsSleeping = !12345; // false IsSleeping = !0; // true
변수 초기화
위 예제들에서 우리는 알게모르게 변수를 초기화 해서 사용했습니다. 초기화(initialization)는 변수를 선언하면서 동시에 값을 넣는 행위를 의미합니다.
// 초기화의 예시 new a = 100; new Float:b = 3.14159; new bool:c = true; new d; // 초기화 되지 않음. 0으로 자동 초기화 d = 1245; // 값 대입 (초기화 아님)
만약 변수를 초기화 하지 않는다면 0으로 자동 초기화됩니다. bool 변수의 경우 false로 초기화 됩니다.