Управление потоком в Zig
Операторы управления потоком в языке программирования Zig определяются заданием программой одного или нескольких условных операторов.
Когда условие истинно, выполняется указанный код программы; когда условие ложно, выполняется другой указанный код.
Ниже приведена типичная блок-схема управления потоком:
Zig предоставляет следующие операторы управляющих структур:
Оператор if
Синтаксис
Базовый оператор if содержит условие и связанный блок кода. Если условие истинно, блок кода выполняется.
if (<condition) {
// 如果 condition 为 true,执行这里的代码
}
Оператор if-else добавляет ветвь else к базовому оператору if. Если условие в if ложно, выполняется код в ветви else.
if (<condition>) {
// 如果 condition 为 true,执行这里的代码
} else {
// 如果 condition 为 false,执行这里的代码
}
условие:Логическое выражение. Если условие истинно, выполняется первый блок кода; в противном случае выполняется блок кода else.
Пример
pub fn main() void {
const x: i32 = 10;
if (x > 5) {
std.debug.print("x больше 5\n", .{});
} else {
std.debug.print("x не больше 5\n", .{});
}
}
Вывод после компиляции и выполнения:
x is greater than 5
Оператор if-else...else
Синтаксис
Поддерживает множественные проверки условий, проверяя каждое условие по порядку, пока условие не станет истинным и не будет выполнен соответствующий блок кода.
Пример
// Если condition1 истинно, выполните код здесь
} else if (condition2) {
// Если condition2 истинно, выполните код здесь
} else {
// Если все условия ложны, выполните код здесь
}
Пример
pub fn main() void {
const x: i32 = 10;
if (x > 10) {
std.debug.print("x is greater than 10\n", .{});
} else if (x == 10) {
std.debug.print("x is equal to 10\n", .{});
} else {
std.debug.print("x is less than 10\n", .{});
}
}
Вывод после компиляции и выполнения:
x is equal to 10
Вложенный if-else
Операторы if-else могут быть вложенными, то есть можно включить другой оператор if в ветвь if или else.
if (<条件1>) {
// 如果条件1为真,执行这里的代码
if (<条件2>) {
// 如果条件1和条件2都为真,执行这里的代码
} else {
// 如果条件1为真但条件2为假,执行这里的代码
}
} else {
// 如果条件1为假,执行这里的代码
}
Пример
pub fn main() void {
const input = 5; // Предположим, это ввод пользователя
const max_value = 10;
if (input > max_value) {
std.debug.print("Введённое значение больше, чем {}\n", .{max_value});
} else if (input == max_value) {
std.debug.print("Введённое значение равно {}\n", .{max_value});
} else {
if (input < 5) {
std.debug.print("Введённое значение меньше 5\n");
} else {
std.debug.print("Введённое значение между 5 и {}\n", .{max_value});
}
}
}
Вывод после компиляции и выполнения:
Input is between 5 and 10
Вывод типов в операторах if
Компилятор Zig может выводить тип переменных в операторах if, если результатом условного выражения является логическое значение.
const condition = true;
if (condition) {
// 这里 condition 的类型是 bool,编译器自动推导
}
Другие расширения