Выбор: if, else и switch
Вы узнаете
Формы if, которые принимает компилятор, выражение if и switch с else.
if (a > b) { ... } else { ... } выполняет один из двух блоков. Скобки необязательны: if a > b { ... } тоже компилируется. if бывает и выражением: return if (a > b) a else b; даёт большее из двух. switch (m) { 0 => 10, else => 20 } выбирает значение по совпадению m, а else покрывает все остальные случаи.
Попробуйте
Добавьте в switch в плеере случай 1 => 15 и проверьте вердикт.

Every form of if and switch the t27 compiler accepts, each checked with the real compiler. Lesson 14 of the t27 basics course.
specs/basics/14_if_and_else.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 14: Choices: if, else and switch.
; if picks one of two paths; switch picks one of many by value.
module basics_14_if_and_else;
pub fn larger(a: u8, b: u8) -> u8 {
if (a > b) {
return a;
} else {
return b;
}
}
pub fn larger_expr(a: u8, b: u8) -> u8 {
return if (a > b) a else b;
}
pub fn price(m: u8) -> u8 {
return switch (m) {
0 => 10,
else => 20,
};
}
pub const LIMIT : u8 = 10;
test the_limit_is_ten {
assert LIMIT == 10;
}
Все уроки
Модуль 1 · Файл спеки
Что лежит в файле .t27: строка module, строки прозы и комментарии.
Модуль 2 · Значения и типы
Константы, ширина целого числа, а также true, false и текст.
Модуль 3 · Массивы, триты и выражения
Списки значений, три значения трита и что вычисляют операторы.
Модуль 4 · Тесты и функции
Блок test, несколько маленьких тестов в одной спеке и функция с типизированными входами.
Модуль 5 · Внутри функции
Имена через let и var, выбор через if и switch и циклы.
Модуль 6 · Видимость и свои типы
Что pub открывает другим модулям, и структуры и перечисления, которые вы объявляете.
Модуль 7 · Модули, правила и gen-ts
Чтение другого модуля, правило, которое выполняется всегда, и спека, превращённая в TypeScript.
Модуль 8 · Компилятор и tri
Бэкенды, которые пишет t27c, стадии, в которых он читает спеку, и команда tri.
Модуль 9 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.