렌파이에는 표현식 값에 따라 제어 흐름을 변경할 수 있는 몇 가지 명령문이 있습니다. (조건 없이 제어 흐름을 이동시키는 명령문에는 jump문, call문 return문 이 있습니다.)
이 페이지에서 설명하는 명령문은 모두 렌파이 스크립트로써 사용할 수 있는 명령문입니다. 렌파이 게임에 내포한 파이썬 코드에서는 파이썬의 while, if, for 문을 사용할 수 있으나 렌파이 스크립트 코드에서는 파이썬의 while, if, for 문을 사용할 수 없습니다.
if문은 파이썬 표현식이 참인 경우에 조건에 따라 블럭에 입력된
코드를 실행합니다. 이 명령문은 하나의 if
절과, 0개 이상의 elif
절, 그리고 추가로 else
절로 구성되어 있습니다.
하나의 논리행에 각 절이 배치되며, 절이 입력된 행 다음에는 명령문 블록이
따라와야 합니다. if
와 elif
절 다음에는 표현식이 적혀야 하며,
모든 절은 콜론(:)으로 종료해야 합니다.
다음은 예제입니다:
if flag:
e "플래그를 설정했구나!"
if points >= 10:
jump best_ending
elif points >= 5:
jump good_ending
elif points >= 1:
jump bad_ending
else:
jump worst_ending
if 문에 있는 표현식은 첫 번째 표현식에서부터 마지막 표현식 순서대로 계산됩니다. 표현식이 참값을 계산해내면, 해당 명령문에 상응하는 블럭이 실행됩니다. 제어 흐름이 블럭 끝에 도달했다면, if문 다음에 있는 명령문이 있는 곳으로 흐름이 진행합니다.
모든 표현식이 거짓값으로 계산된다면, else``절이 있는 경우에만
``else
절의 블럭이 실행됩니다.
while문은 표현식이 참값으로 계산되는 동안 반복해서 코드 블럭을 실행합니다. 다음은 예제입니다.:
$ count = 10
while count > 0:
"카운트 다운 [count]."
$ count -= 1
"발사!"
while True:
"이 노래는 절대 끝나지 않아."
"계속 계속 불리울 거야, 친구야. "
표현식은 while문에 처음 도달했을 때 계산되며 제어 흐름이 블록 끝에 도달할 때마다 계산합니다. 표현식이 거짓 값을 반환하면 while문 다음에 있는 명령문이 실행됩니다.
렌파이 스크립트에는 continue, break, for 문이 없습니다. continue 와 break 문은 while 루프 이전이나 이후에 jump문을 사용하는 것으로 대체할 수 있습니다. 첫 번째 while문 예제는 for문을 대체하는 방법을 보여주고 있습니다.
pass문은 블록이 있어야 하지만 마땅히 입력할 명령문이 없는 블록에 입력할 수 있습니다. 아무 작동도 안 합니다.
아래는 예제입니다:
if points >= 10:
"잘하고 있는데!"
elif points >= 1:
pass
else:
"상황이 좋지는 않네."
# event.step() 는 실행해야 할 이벤트가 있을 때
# 참값을 반환하는 함수이다.
while event.step():
pass