Выбор значения без ветки
Ветка ради одного значения не нужна — но и select нужен не всегда: у сравнения ответ уже есть
select кладёт в переменную одно из двух значений: первое, если условие верно, второе —
если нет. В блоке это читается словами: итог = если медь >= 100 тогда 1 иначе 0.
Прежде чем брать его в руки, стоит понять, когда он не нужен, — иначе им начинают писать то, что и так пишется короче.
Нажмите «шаг» четыре раза.
Когда select не нужен
Заголовок раздела «Когда select не нужен»Вторая строка примера — op greaterThanEq хватает медь 100, и в хватает оказывается
единица. Никакого выбора тут не понадобилось: сравнение само отвечает единицей или нулём,
и это уже готовое значение.
Когда он к месту
Заголовок раздела «Когда он к месту»Как только значения перестают быть единицей и нулём, сравнение перестаёт помогать.
Третья строка выбирает между двумя строками: надпись становится «хватает». Такое
через op не получить вовсе — сравнение умеет отвечать только числом.
Четвёртая строка — select сколькоБрать lessThan медь 100 медь 100 — ограничивает число
сверху: если меди меньше сотни, взять сколько есть, иначе ровно сотню. В сколькоБрать
окажется 100.
Общее правило: select нужен, когда оба значения произвольны — числа не из нуля
и единицы, строки, предметы, здания, переменные.
| Что выбираем | Чем |
|---|---|
| единицу или ноль по условию | op со сравнением |
| одно из двух готовых значений | select |
| одно из двух действий | jump: это ветка, а не значение |
| большее или меньшее из двух чисел | op max и op min — короче |
Выбирают значение, а не действие
Заголовок раздела «Выбирают значение, а не действие»Обе половины select — значения, которые уже есть: числа, строки, переменные, объекты.
Инструкция ничего не выполняет и ничего не пропускает, она просто берёт одно из двух.
Условия те же, что у jump
Заголовок раздела «Условия те же, что у jump»Их восемь, и на кнопке у них те же знаки — ==, ===, not и остальные из
таблицы. Слова «если», «тогда» и «иначе» в блоке — перевод;
без него будут if, then, else.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.