Loops and flow control

대부분의 VEX 작업은 함수 호출과 함께 수행된다. 대부분의 문법은 반복 개념으로 되어 있고, 대부분은 C와 같은 다른 언어와 유사하다. 반면 Python과 같은 다른 몇 언어에서 print가 문법인 반면, VEX는 printf 함수를 출력하는데 사용한다.

{}

C와 다른 언어들처럼, 다수의 문법을 꺽쇠괄호에 넣어 하나의 블록으로 행하게 할 수 있다.

예를 들어, if 문법은 하나의 문법으로 실행될 수 있다 :

1
if ( needs_zapping() ) zap()
cs

또는 꺽쇠 괄호 안에 블럭을 넣을 수 있다 :

1
2
3
4
5
if ( needs_zapping() ) {
    zap()
    disintegrate()
    remove_dust()
}
cs

do loop

do statement [while (condition) ]

statement를 실행하고, condition이 참이면 반복을 한다. while 루프와 다르게, statement가 최소 한번은 실행된다.

for loop

for (init; condition; change) statement

기존 C 스타일의 for 루프이다. init 문법을 행하고, 그 다음 condition이 참인 동안 statement를 반복적으로 실행한다. 각 반복마다 마지막에 change 문법을 실행한다.

foreach loop

foreach (value; array) statement

foreach (index; value; array) statement

array의 멤버에 대한 statement를 실행한다. (선택적으로 index를 설정해 배열에서 현재 위치를 지정할 수 있다).

while loop

while (condition) statement

statementcondition이 참인동안 실행한다.

Other looping statements

forpoints, illuminace, gather 문법들은 VEX에서 수행되기 시작하는 데이트를 반복 시킨다.

if

if (condition) statement_if_true [else statement_if_false]

condition이 참이면 statement_if_true를 실행한다.

else 절이 포함되면,  condition이 거짓일때 statement_if_false가 실행된다.

return

선택한 리턴 값과 함께 함수를 빠져나간다.

1
2
3
4
5
6
int max(int a, b) {
    if (a > b) {
        return a;
    }
    return b;
}
cs

break

break는 루프에서 즉시 빠져나가게 한다. if 문법이 반복을 어떤 조건에 도달하기 전에 멈추게하려할 때 유용하다.

1
2
3
4
5
6
int max(int a, b) {
    if (a > b) {
        return a;
    }
    return b;
}
cs

Continue

continue는 다음 루프의 반복으로 즉각적으로 점프시킨다.

1
2
3
4
foreach (x; myarray) {
    if (x < 10continue;
    …
}
cs

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s