Контроль#
Введение#
Блоки управления в VEXcode GO управляют потоком выполнения проекта, обрабатывая циклы, условия и задерживая выполнение блоков.
Цикл — это когда компьютер повторяет один и тот же шаг или группу шагов снова и снова, пока ему не будет дано указание остановиться. Условие — это правило, которое компьютер проверяет, чтобы решить, что делать дальше. Например, робот может двигаться вперед, если датчик обнаружит объект.
Ниже приведён список всех блоков:
wait — Приостанавливает выполнение блоков на определенный период времени.
ждать до — Приостанавливает выполнение блоков до тех пор, пока не будет выполнено указанное условие.
повтор — Повторяет набор блоков определенное количество раз.
навсегда — Повторяет набор блоков бесконечно.
повторять до — Повторяет набор блоков до тех пор, пока не будет выполнено условие.
while — Повторяет набор блоков, пока условие остается истинным.
if — Выполняет набор блоков, если условие истинно.
if / else — Выполняет один набор блоков, если условие истинно, в противном случае выполняет другой.
if / else if / else — Запускает разные наборы блоков в зависимости от нескольких условий.
break — Немедленно выходит из цикла repeat, forever, repeat until или while.
остановить проект — Завершает проект.
ждать#
Блок wait в стеке приостанавливает выполнение блоков на определенное время, прежде чем перейти к следующему блоку.
ждать (1) секунд
Параметры |
Описание |
|---|---|
время |
Время ожидания, выраженное в секундах в виде положительного целого числа или десятичной дроби. |
Пример
при запуске :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
движение [вперёд v]
ждать (2) секунд
остановить движение
подождите, пока#
Блок wait until в стеке приостанавливает выполнение блоков до тех пор, пока не будет выполнено указанное условие, после чего переходит к следующему блоку.
ждать пока <>
Параметры |
Описание |
|---|---|
состояние |
Условие, которое должно быть выполнено, прежде чем перейти к следующему блоку. |
Пример
при запуске :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward when the LED Bumper is pressed.]
ждать пока <[bumper v] нажат? :: custom-led>
движение [вперёд v] на [200] [мм v] ▶
повторить#
Блок repeat C выполняет блоки внутри себя заданное количество раз.
повторить [10]
конец
Параметры |
Описание |
|---|---|
времена |
Целое число, определяющее, сколько раз будет выполняться блок повтор. |
Пример
при запуске :: hat events
[Build Used: Code Base 2.0]
[Drive in a square pattern.]
повторить [4]
движение [вперёд v] на [200] [мм v] ▶
поворот [вправо v] на [90] градусов ▶
навсегда#
Блок C, работающий бесконечно, продолжает запускать находящиеся внутри него блоки снова и снова без остановки.
вечно
конец
Параметры |
Описание |
|---|---|
Этот блок не имеет параметров. |
Пример
при запуске :: hat events
[Build Used: Code Base 2.0 - Eye Forward]
[Blink LED light in a pattern.]
вечно
установить цвет [bumper v] [зелёный v] :: custom-led
ждать [0.5] секунд
установить цвет [bumper v] [выкл v] :: custom-led
ждать [0.5] секунд
повторять до тех пор, пока#
Блок C repeat until многократно запускает находящиеся в нем блоки до тех пор, пока не будет выполнено указанное условие.
повторять пока <>
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется перед каждым циклом. Если она ложная, блоки продолжают повторяться. Если она истинная, цикл останавливается. |
Пример
при запуске :: hat events
[Build Used: Code Base 2.0 - Eye Forward]
[Blink LED light until the LED Bumper is pressed.]
повторять пока <[bumper v] нажат? :: custom-led>
установить цвет [bumper v] [зелёный v] :: custom-led
ждать [0.5] секунд
установить цвет [bumper v] [выкл v] :: custom-led
ждать [0.5] секунд
пока#
Блок while на языке C многократно выполняет находящиеся внутри него блоки, пока выполняется указанное условие.
пока <>
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется перед каждым циклом. Если она истинна, блоки продолжают повторяться. Если она ложна, цикл останавливается. |
Пример
при запуске :: hat events
[Build Used: Code Base 2.0]
[Turn the robot around.]
пока <(Курс движения в градусах) [math_less_than v] [180]>
поворот [вправо v]
конец
остановить движение
если#
Блок if на языке C запускает блоки внутри, если условие истинно.
если <> то
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется при выполнении оператора. Если она истинна, блоки внутри блока if будут выполнены. Если она ложна, блоки пропускаются. |
Пример
при запуске :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward whenever the LED Bumper is pressed.]
вечно
если <[bumper v] нажат? :: custom-led> то
движение [вперёд v] на [200] [мм v] ▶
если / иначе#
Блок if / else в языке C определяет, какой набор блоков будет выполняться в зависимости от того, является ли условие истинным или ложным.
если <> то
иначе
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется при выполнении оператора. Если она истинна, будут выполнены блоки внутри блока if. Если она ложна, будут выполнены блоки внутри блока else. |
Пример
при запуске :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward if there is no an object in the way.]
вечно
если <датчик Eye нашел объект?> то
остановить движение
иначе
движение [вперёд v] на [200] [мм v] ▶
если / иначе если / иначе#
Расширяемый блок C if / else if / else выбирает, какой набор блоков будет выполняться в зависимости от условий:
Функция
ifвыполняет свой блок кода, если условие оценивается какTrue.Оператор else if проверяет дополнительные условия только в том случае, если все предыдущие условия были оценены как ложные. Можно использовать несколько операторов else if.
В противном случае блок кода выполняется только в том случае, если ни одно из предыдущих условий не было оценено как истинное.
если <> то
иначе если <> то
иначе
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется при выполнении оператора. Первое условие, которое истинно, запускает этот набор блоков. Если все условия ложны, то будут выполнены блоки внутри блока else. |
Пример
при запуске :: hat events
[Build Used: Super Code Base 2.0]
[Turn right for red, left for green.]
вечно
если <датчик Eye обнаружил [красный v]?> то
поворот [вправо v]
иначе если <датчик Eye обнаружил [зелёный v]?> то
поворот [влево v]
иначе
остановить движение
перерыв#
Блок break в стеке немедленно завершает цикл. Этот блок можно использовать внутри блоков repeat, repeat until, while и forever. Break полезен, когда цикл необходимо остановить досрочно в зависимости от события, происходящего во время выполнения проекта, например, нажатия кнопки или обнаружения объекта датчиком.
прервать
Параметры |
Описание |
|---|---|
Этот блок не имеет параметров. |
Пример
при запуске :: hat events
[Build Used: Super Code Base 2.0]
[Flash the LED until the LED Bumper is pressed.]
вечно
установить цвет [bumper v] [зелёный v] :: custom-led
ждать [0.5] секунд
установить цвет [bumper v] [красный v] :: custom-led
ждать [0.5] секунд
если <[bumper v] нажат? :: custom-led> то
прервать
остановить проект#
Блок стека stop project завершает выполнение запущенного проекта.
остановить проект
Параметры |
Описание |
|---|---|
Этот блок не имеет параметров. |
Пример
при запуске :: hat events
[Build Used: Super Code Base 2.0]
[Stop the project when the LED Bumper is pressed.]
вечно
движение [вперёд v] на [100] [мм v] ▶
если <[bumper v] нажат? :: custom-led> то
остановить проект