배열 변수 선언(Crystal 구문)
형식 이름 뒤에 키워드 배열을 추가하여 배열 변수를 선언할 수 있습니다.
//x를 숫자 배열 형식의 전역 변수로 선언합니다.
Global NumberVar Array x := [10 , 20, 30];
//Cost는 통화 배열 형식의 전역 변수입니다.
//이 변수는 범위 지정자(Local, Global 또는 Shared)가 생략되어 있기 때문에 자동으로 전역 변수가 됩니다.
CurrencyVar Array cost := [$19.95, $79.50, $110.00,
$44.79, $223.99];
//payDays는 Date Array 형식의 전역 변수입니다.
Global DateVar Array payDays := [CDate(1999, 5, 15),
CDate(1999, 5, 31)];
//y는 String Range Array 형식의 공유 변수입니다.
Shared StringVar Range Array y := ["A" To "C",
"H" To "J"];
//days는 String Array 형식의 로컬 변수입니다.
Local StringVar Array days;
days := ["Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat"];
배열 요소에 값 할당
배열의 요소에 값을 할당할 수 있고 이러한 값을 다른 계산에 사용할 수도 있습니다.
StringVar Array x := ["hello", "bye", "again"];
x [2] := "once"; // x == ["hello", "once", "again"]
아래의 식은 배열의 크기가 3이므로 주석 처리를 하지 않으면 오류가 발생합니다.
//수식에서 문자열 "HELLO"를 반환합니다.
UpperCase (x [1])
Redim 및 Redim Preserve 키워드는 배열에 추가 정보를 추가할 경우에 배열의 크기를 조정하는 데 사용됩니다. Redim은 배열의 크기를 조정하기 전에 먼저 배열의 이전 내용을 지우지만 Redim Preserve는 이전 내용을 보존합니다.
Local NumberVar Array x;
Redim x [2]; // x = [0, 0]
x [2] := 20; // x = [0, 20]
Redim x [3]; // x = [0, 0, 0]
x [3] := 30; // x = [0, 0, 30]
Redim Preserve x [4]; // x = [0, 0, 30, 0]
"finished"
Local StringVar Array a;
Redim a [2];
a[1] := "good";
a[2] := "bye";
a[1] & a[2] //이 수식은 문자열 "goodbye"를 반환합니다.
배열 및 For 루프
일반적으로 배열은 For 루프와 함께 사용됩니다. 다음 예는 배열 For 루프를 사용하여 [10, 20, 30, ..., 100]을 만든 다음 이 배열을 사용합니다. 아래 수식은 숫자 20을 반환합니다.
Local NumberVar Array b;
Redim b[10];
Local NumberVar i;
For i := 1 To 10 Do
(
b[i] := 10 * i
);
b [2]