Циклы: while и for
Вы узнаете
Три формы цикла, которые принимает компилятор, и как пишется диапазон.
while (i < n) { i = i + 1; } повторяет блок, пока условие истинно, и блок обязан приближать момент, когда оно станет ложным. for i in 0..n { } проводит i от 0 до n, не включая само n. Компилятор принимает и форму Zig: for (0..4) |i| { }. Цикл обычно обновляет var, объявленную перед ним.
Попробуйте
Посчитайте вручную, что вернёт sum_to при n = 4, и запишите это константой с тестом.

while, for in a range and the Zig-style for, each checked with the real t27 compiler, and a range drawn step by step. Lesson 15 of the t27 basics course.
specs/basics/15_loops.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 15: Loops: while and for.
; while repeats while a condition holds; for walks a range of numbers.
module basics_15_loops;
pub fn sum_to(n: u8) -> u16 {
var s : u16 = 0;
for i in 0..n {
s = s + i;
}
return s;
}
pub fn count_up(n: u8) -> u8 {
var i : u8 = 0;
while (i < n) {
i = i + 1;
}
return i;
}
pub const SUM_BELOW_5 : u16 = 10;
test zero_to_four_add_up_to_ten {
assert SUM_BELOW_5 == 0 + 1 + 2 + 3 + 4;
}
Все уроки
Модуль 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 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.