Перейти к содержимому

Выбор значения без ветки

Ветка ради одного значения не нужна — но и select нужен не всегда: у сравнения ответ уже есть

select кладёт в переменную одно из двух значений: первое, если условие верно, второе — если нет. В блоке это читается словами: итог = если медь >= 100 тогда 1 иначе 0.

Прежде чем брать его в руки, стоит понять, когда он не нужен, — иначе им начинают писать то, что и так пишется короче.

тик 0
Информация0
=
у
Операция1
=
Выбор2
= if
тогда иначе
Выбор3
= if
тогда иначе
@counter0number
медьnullnull
хватаетnullnull
надписьnullnull
сколькоБратьnullnull

Нажмите «шаг» четыре раза.

Вторая строка примера — op greaterThanEq хватает медь 100, и в хватает оказывается единица. Никакого выбора тут не понадобилось: сравнение само отвечает единицей или нулём, и это уже готовое значение.

Как только значения перестают быть единицей и нулём, сравнение перестаёт помогать.

Третья строка выбирает между двумя строками: надпись становится «хватает». Такое через op не получить вовсе — сравнение умеет отвечать только числом.

Четвёртая строкаselect сколькоБрать lessThan медь 100 медь 100 — ограничивает число сверху: если меди меньше сотни, взять сколько есть, иначе ровно сотню. В сколькоБрать окажется 100.

Общее правило: select нужен, когда оба значения произвольны — числа не из нуля и единицы, строки, предметы, здания, переменные.

Что выбираем Чем
единицу или ноль по условию op со сравнением
одно из двух готовых значений select
одно из двух действий jump: это ветка, а не значение
большее или меньшее из двух чисел op max и op min — короче

Обе половины selectзначения, которые уже есть: числа, строки, переменные, объекты. Инструкция ничего не выполняет и ничего не пропускает, она просто берёт одно из двух.

Их восемь, и на кнопке у них те же знаки — ==, ===, not и остальные из таблицы. Слова «если», «тогда» и «иначе» в блоке — перевод; без него будут if, then, else.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.