제어문

이 섹션에서는 스크립트의 흐름을 제어하는 명령에 대해 설명합니다. 이러한 명령은 조건(if, while) 및 루프(for)의 기능을 제공합니다.

참고: 이 섹션의 정보는 응용프로그램 설명서용 QT 스크립트를 직접 참조합니다.

끊기

이 키워드는 for 루프, do 루프, while 루프 및 switch 문에 사용됩니다. 루프에서 break 문이 나오면, break 문을 포함하는 맨 안쪽 루프가 끝난 이후에 나오는 문으로 제어가 전달됩니다. 단, break 문 다음에 레이블의 이름이 나오지 않아야 합니다. 이 이름이 나오면 제어는 레이블에 의해 제어되는 문으로 전달됩니다.

break 문은 일반적으로 인터프리터가 다음 case로 "제어를 이동"하지 못하게 하기 위해 switch 문의 각 case 끝에 배치됩니다. 인터프리터가 break 문을 만나면 맨 안쪽의 switch 문 다음에 나오는 문으로 제어를 전달합니다. 모든 case에 해당 break가 있으면 겨우 하나의 case 문만 실행됩니다. break 문 다음에 레이블 이름(레이블)이 나오면 해당 레이블로 표시된 문으로 제어가 전달됩니다. 이러한 방식은 깊게 중첩된 루프를 끊는 데 유용합니다.

예:

Case

이 키워드는 switch 문에 사용됩니다. switch 문의 식이 평가될 수 있는 가능한 각 값에 대해 하나의 case가 작성될 수 있습니다(default 참조). case의 리터럴 값(Value)이 switch 문의 식 값과 일치하면 해당 case의 문(구문)이 실행됩니다.

일반적으로 case의 문은 break 문에 의해 종료되고 이로 인해 실행은 switch 문 끝까지 전달됩니다.

계속

이 키워드는 for, while 또는 do 루프의 컨텍스트 내에서 사용됩니다.

for 루프에서 continue 문이 나오면 실행은 즉시 for 루프의 세 번째 부분(일반적으로 카운터가 증가하거나 감소되는 위치)으로 전달되고 실행은 정상적으로 계속됩니다. 즉, for 루프의 가운데 부분(조건절)이 테스트되고 결과가 true이면 루프 본문이 실행됩니다.

continue 문이 while 또는 do 루프에 나오면 실행은 즉시 조건절로 전달되고 다시 테스트됩니다. 조건절이 여전히 true이면 루프 본문이 실행됩니다.

기본값

이 키워드는 switch 문에 사용됩니다. 이 키워드는 switch 문의 식이 평가되는 대상과 일치하는 항목을 찾기 위해 case 대신 사용됩니다. default가 사용되지 않고 어떤 case도 일치하지 않으면 switch 문은 아무 것도 실행하지 않고 다음 문으로 제어가 전달됩니다. default가 사용되면 switch 문의 마지막 case여야 합니다. 각 case는 순서대로 평가되고, detault와 일치하는 값이 반드시 있으므로 인터프리터가 default에 도달하면 항상 실행되고 다음에 나오는 모든 case는 항상 무시되기 때문입니다. default case가 나오면 해당 DefaultStatements가 실행됩니다. default 문은 break로 끝내는 것이 일반적입니다.

Do

이 키워드는 loop가 1번 이상 실행되도록 하기 위해 while 문과 함께 사용합니다.

do 다음에 나오는 중괄호로 묶인 구문은 1번 실행됩니다. while 조건이 true로 평가되면 실행은 do로 다시 전달되고 전체 프로세스가 반복됩니다. while 루프의 조건절이 false가 되면 while 문 다음 문부터 실행이 계속됩니다.

예:

이 예는 콘솔에 5, 10, 15, ..., 45, 55, 60, 65, ..., 95를 출력합니다.

Else

else 키워드는 if와 함께 사용됩니다.

For

이 키워드는 고정된 횟수만큼 실행되는 루프를 작성하는 데 사용됩니다.

for 문은 키워드 for, 여는 괄호, 0개 이상의 문(첫 번째 부분), 세미콜론, 조건식(두 번째 부분), 세미콜론, 0개 이상의 문(세 번째 부분), 닫는 괄호, for 루프로 제어되는 문 또는 블록으로 구분됩니다.

for 문의 첫 번째 부분은 일반적으로 for 루프의 두 번째 부분에 나오는 조건에 사용되는 변수를 초기화(및 선언)하는 데 사용됩니다. 이 부분은 루프가 시작되기 전에 한 번 실행됩니다. 이 부분은 비어 있을 수 있습니다.

두 번째 부분에는 조건부 표현식이 포함됩니다. 이 표현식은 루프의 각 반복 이전(첫 번째 반복 이전 포함)에 평가됩니다. 이 표현식이 false로 평가되면 for 문으로 제어되는 문이나 블록이 실행되지 않고 제어는 다음에 나오는 문으로 전달됩니다. 조건이 true가 아니면 for 루프로 제어되는 문이나 블록은 절대 실행되지 않습니다. 조건식이 true이면 for 루프로 제어되는 문 또는 블록이 실행된 다음, for 문의 세 번째 부분이 실행되고, 그 이후에 제어가 조건식으로 다시 전달되어 전체 프로세스가 반복됩니다. 이 부분은 비워둘 수 없습니다.

세 번째 부분에는 루프의 모든 반복이 끝나고 실행되어야 하는 문이 포함됩니다. 이 부분은 일반적으로 첫 번째 부분에서 초기화된 변수를 증가하는 데 사용되며, 전체 값은 두 번째 부분에서 테스트됩니다. 이 부분은 비어 있을 수 있습니다.

다음 예에서는 도면요소 44~52가 선택됩니다.

If

if 문은 양방향 분기를 제공합니다. 다중 방향 분기는 else if를 사용하면 얻을 수 있습니다.

전환

switch 문은 다중 방향 분기를 제공합니다. 표현식이 한 번 평가된 다음, 표현식 값과 일치하는 Value를 갖는 case를 찾기 위해 각 case가 확인됩니다. 일치가 확인되면 일치하는 case의 구문이 실행되고, switch 블록 다음 문으로 제어가 전달됩니다. 일치하는 case가 없고 default case가 있으면 DefaultStatements가 실행되고, switch 블록 다음 문으로 제어가 전달됩니다. 일치하는 case가 없고 detault도 없으면 switch 블록 내의 문이 실행되지 않고 switch 블록 다음 문으로 제어가 전달됩니다.

default가 사용되면 반드시 모든 case 다음에 나와야 합니다. default가 나오면 뒤에 나오는 내용에 관계없이 일치하는 case로 취급되기 때문입니다.

모든 case 및 default(사용된 경우)에는 마지막 문으로 break가 사용되어야 합니다. break가 없으면 제어는 원치 않게 다음 문으로 "넘어가게" 됩니다.

표현식은 엄격히 비교될 수 있는 객체로 평가되는 임의의 Autodesk® CFD 스크립트 표현식일 수 있습니다. 예로는 부울, 날짜, 숫자 및 문자열 값으로 평가하는 식이 있습니다.

While

이 키워드는 코드 블록을 0번 이상 반복하는 데 사용됩니다. while 문이 나오면 조건이 평가됩니다. 조건이 true이면 while 블록의 문이 실행되고, 그렇지 않으면 제어는 while 블록 다음에 나오는 문으로 전달됩니다. 조건이 true이면 문이 실행된 후에 조건이 다시 평가되고 전체 프로세스가 반복됩니다.

예: