For..next
for..next 제어 문은 카운터를 사용하는 스크립트 반복 구조입니다. 지정된 하한 및 상한 사이(및 경계 값 포함)의 각 카운터 변수 값에 대해 for와 next로 묶인 루프 내의 문이 실행됩니다.
구문:
For counter = expr1 to expr2 [ step expr3 ]
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
Next [counter]
expr1, expr2 및 expr3 표현식은 루프에 처음 진입할 때만 평가됩니다. counter 변수의 값은 루프 내의 문에서 변경할 수 있지만 이것은 좋은 프로그래밍 방법이 아닙니다.
루프 내에서 exit for 절이 나올 경우 스크립트 실행이 루프의 끝을 나타내는 next 절 다음 첫 번째 문으로 전환됩니다. 선택적으로 when 또는 unless 접미사를 사용하여 exit for 절을 조건부로 만들 수 있습니다.
인수:
인수 | 설명 |
---|---|
counter | 변수 이름입니다. counter가 next 다음에 지정된 경우, 이 이름은 해당하는 for 다음에 오는 이름과 동일해야 합니다. |
expr1 | 루프를 실행할 counter 변수의 첫 번째 값을 결정하는 표현식입니다. |
expr2 |
루프를 실행할 counter 변수의 최대 값을 결정하는 표현식입니다. |
expr3 | 루프가 실행될 때마다 counter 변수의 증가분을 나타내는 값을 결정하는 표현식입니다. |
condition | True 또는 False로 평가되는 논리 표현식입니다. |
statements | 하나 이상의 QlikView 스크립트 문의 그룹입니다. |
예 1: 파일 시퀀스 로드
// LOAD files file1.csv..file9.csv
for a=1 to 9
LOAD * from file$(a).csv;
next
예 2: 임의의 숫자의 파일 로드
이 예에서는 데이터 파일 x1.csv, x3.csv, x5.csv, x7.csv 및 x9.csv가 있다고 가정합니다. 로드는 if rand( )<0.5 then 조건을 사용하여 임의의 지점에서 중지됩니다.
for counter=1 to 9 step 2
set filename=x$(counter).csv;
if rand( )<0.5 then
exit for unless counter=1
end if
LOAD a,b from $(filename);
next