제어#

소개#

VEXcode의 제어 블록은 반복문, 조건문, 블록 실행 지연 등을 처리하여 프로젝트의 흐름을 관리합니다.

루프란 컴퓨터가 명령을 받을 때까지 동일한 단계 또는 일련의 단계를 반복하는 것을 말합니다. 조건이란 컴퓨터가 다음에 수행할 작업을 결정하기 위해 확인하는 규칙입니다. 예를 들어, 로봇 팔이 물체를 움직이면 조명이 켜질 수 있습니다.

아래는 사용 가능한 블록 목록입니다.

  • wait – 특정 시간 동안 블록 실행을 일시 중지합니다.

  • wait until – 지정된 조건이 충족될 때까지 블록 실행을 일시 중지합니다.

  • 반복 – 블록 세트를 지정된 횟수만큼 반복합니다.

  • 영원히 – 블록 세트를 무한히 반복합니다.

  • 반복할 때까지 – 조건이 충족될 때까지 블록 세트를 반복합니다.

  • while – 조건이 참인 동안 블록 세트를 반복합니다.

  • if – 조건이 참이면 블록 세트를 실행합니다.

  • if / else – 조건이 참이면 한 세트의 블록을 실행하고, 그렇지 않으면 다른 세트를 실행합니다.

  • if / else if / else – 여러 조건에 따라 다른 블록 세트를 실행합니다.

  • break – repeat, forever, repeat until, 또는 while 루프를 즉시 종료합니다.

  • 프로젝트 중지 – 프로젝트를 종료합니다.

기다리다#

대기 스택 블록은 다음 블록으로 넘어가기 전에 특정 시간 동안 블록 실행을 일시 중지합니다.

대기 스택 블록#
(1)초 기다리기

매개변수

설명

시간

기다려야 하는 시간을 양의 정수 또는 소수(초)로 나타냅니다.

예

작동을 시작하면 1초 동안 앞으로 움직인 후 모든 움직임을 멈춥니다.#
시작 시
[Move to the left, then the right after one second.]
[팔 v] 위치를 x:[100] y:[0] z:[0] [mm v] 만큼 증가 ▶
(1)초 기다리기
[팔 v] 위치를 x:[-100] y:[0] z:[0] [mm v] 만큼 증가 ▶

기다리다#

wait until 스택 블록은 지정된 조건이 충족될 때까지 블록 실행을 일시 중지한 후 다음 블록으로 이동합니다.

스택 블록이 될 때까지 기다리세요#
<>까지 기다리기

매개변수

설명

상태

다음 단계로 넘어가기 전에 충족해야 하는 조건입니다.

반복하다#

반복 C 블록은 그 안에 있는 블록들을 정해진 횟수만큼 실행합니다.

c 블록 반복#
[10]번 반복
끝

매개변수

설명

타임스

반복 블록이 실행되는 횟수를 설정하는 정수입니다.

예

시작 시
[Move in a square pattern.]
[4]번 반복
[팔 v] 위치를 x:[2] y:[0] z:[0] [인치 v] 만큼 증가 ▶
[팔 v] 위치를 x:[0] y:[2] z:[0] [인치 v] 만큼 증가 ▶
[팔 v] 위치를 x:[-2] y:[0] z:[0] [인치 v] 만큼 증가 ▶
[팔 v] 위치를 x:[0] y:[2] z:[0] [인치 v] 만큼 증가 ▶
끝

영원히#

영원한 C 블록은 멈추지 않고 그 안에 있는 블록들을 계속해서 반복 실행합니다.

포에버 C 블록#
무한 반복
끝

매개변수

설명

이 블록에는 매개변수가 없습니다.

예

작동을 시작하면 50mm 앞으로 이동하고 오른쪽으로 90도 회전하는 정사각형 경로를 따라 무한히 움직입니다.#
시작 시
[Move in a square path forever.]
무한 반복
[팔 v] 위치를 x:[2] y:[0] z:[0] [인치 v] 만큼 증가 ▶
[팔 v] 위치를 x:[0] y:[2] z:[0] [인치 v] 만큼 증가 ▶
[팔 v] 위치를 x:[-2] y:[0] z:[0] [인치 v] 만큼 증가 ▶
[팔 v] 위치를 x:[0] y:[2] z:[0] [인치 v] 만큼 증가 ▶
끝

반복할 때까지#

반복 실행 C 블록은 지정된 조건이 충족될 때까지 그 안에 있는 블록들을 반복적으로 실행합니다.

블록될 때까지 반복#
<>까지 반복
끝

매개변수

설명

상태

각 반복문 실행 전에 확인하는 표현식 또는 변수입니다. 이 변수가 False이면 반복문이 계속 실행되고, True이면 반복문이 종료됩니다.

예

처음 작동 시에는 화면을 누를 때까지 모든 LED가 빨간색으로 켜져 있다가 화면을 누르면 꺼집니다.#
시작 시
[Increment along the x-axis until it's no longer possible.]
<<[팔 v] 위치를 x:[100] y:[0] z:[0] [mm v] 만큼 증가 가능?> 아님>까지 반복
[팔 v] 위치를 x:[100] y:[0] z:[0] [mm v] 만큼 증가 ▶
끝
[팔 v]을 제어 정지로 설정

~하는 동안#

C 블록의 while 구문은 지정된 조건이 충족되는 동안 내부 블록을 반복적으로 실행합니다.

c 블록 동안#
<> 동안
끝

매개변수

설명

상태

각 반복문 실행 전에 확인하는 표현식 또는 변수입니다. 이 변수가 참이면 반복문이 계속 실행되고, 거짓이면 반복문이 종료됩니다.

예

시작 블록으로 시작하고, 그 뒤에 “2초가 지나면 시간을 표시합니다”라는 주석 블록이 이어집니다. 대기 블록은 타이머가 2초에 도달하거나 초과할 때까지 실행을 일시 중지합니다. 이 조건이 충족되면 출력 블록이 타이머 값을 화면에 표시합니다.#
시작 시
[Display the 6-Axis Arm's position as it moves.]
[팔 v]을 위치 x:(-100) y:(200) z:(100) [mm v]로 이동 ◀ 및 기다리지 않음
<<[팔 v] 이동 완료?> 아님> 동안
콘솔에 ([팔 v] 위치 [y v]([mm v])) 출력 ◀ 및 커서를 다음 행으로 이동
[0.25]초 기다리기

만약에#

C 블록의 if 조건문은 조건이 참일 경우 내부 블록들을 실행합니다.

블록인 경우#
<>이면
끝

매개변수

설명

상태

조건문이 실행될 때 검사되는 표현식 또는 변수입니다. 이 값이 참이면 if 블록 안의 블록들이 실행되고, 거짓이면 해당 블록들은 건너뛰어집니다.

예

시작 시
[Check if the 6-Axis Arm can move to a position.]
<<[팔 v]이 위치 x:[0] y:[0] z:[0] [mm v]로 이동 가능한가요?> 아님>이면
[The 6-Axis Arm can't move to this position.] 출력 ◀ 및 커서를 다음 행으로 이동

만약 / 그렇지 않다면#

C 블록의 if / else 구문은 조건이 참인지 거짓인지에 따라 어떤 블록들이 실행될지 결정합니다.

만약 그렇다면 그렇지 않으면 블록#
<>이면
아니면
끝

매개변수

설명

상태

문장이 실행될 때 검사되는 표현식 또는 변수입니다. 이 변수가 참이면 if 블록 안의 블록들이 실행되고, 거짓이면 else 블록 안의 블록들이 실행됩니다.

예

시작 시
[Check if the 6-Axis Arm can or can't move to a position.]
<<[팔 v]이 위치 x:[100] y:[100] z:[100] [mm v]로 이동 가능한가요?> 아님>이면
콘솔에 [The 6-Axis Arm can't move to this position.] 출력 ◀ 및 커서를 다음 행으로 이동
아니면
콘솔에 [The 6-Axis Arm can move to this position.] 출력 ◀ 및 커서를 다음 행으로 이동

만약 / 그렇지 않다면 / 그렇지 않다면#

if / else if / else 확장형 C 블록은 조건에 따라 어떤 블록 집합이 실행될지 선택합니다.

  • if 문은 조건이 True로 평가되면 해당 코드 블록을 실행합니다.

  • else if 문은 이전의 모든 조건이 False로 평가된 경우에만 추가 조건을 확인합니다. 여러 개의 else if 문을 사용할 수 있습니다.

  • else는 이전 조건 중 어느 것도 True로 평가되지 않은 경우에만 해당 코드 블록을 실행합니다.

if else if else 블록#
<>이면
아니면 <>이면
아니면
끝

매개변수

설명

상태

문장이 실행될 때 검사되는 표현식 또는 변수입니다. 첫 번째 조건이 참이면 해당 블록 집합이 실행됩니다. 모든 조건이 거짓으로 평가되면 else 블록 안의 블록들이 실행됩니다.

예

시작 시
[Move until the 6-Axis Arm is at the corner of the tile.]
<[팔 v] 위치를 x:[50] y:[0] z:[0] [mm v] 만큼 증가 가능?>이면
[팔 v] 위치를 x:[50] y:[0] z:[0] [mm v] 만큼 증가 ▶
아니면 <[팔 v] 위치를 x:[0] y:[50] z:[0] [mm v] 만큼 증가 가능?>이면
[팔 v] 위치를 x:[0] y:[50] z:[0] [mm v] 만큼 증가 ▶
아니면
콘솔에 [The 6-Axis Arm has reached the corner.] 출력 ◀ 및 커서를 다음 행으로 이동

부서지다#

The break stack block exits a loop immediately. This block can be used inside repeat, repeat until, while, and forever blocks. Break is useful when a loop needs to stop early based on something that happens during the project, like a button being pressed or a sensor detecting an object.

스택 블록을 깨뜨리다#
중단

매개변수

설명

이 블록에는 매개변수가 없습니다.

프로젝트 중단#

프로젝트 중지 스택 블록은 실행 중인 프로젝트를 종료합니다.

프로젝트 블록 중지#
프로젝트 정지

매개변수

설명

이 블록에는 매개변수가 없습니다.