Zig-Kontrollfluss
Die Kontrollflussanweisungen der Programmiersprache Zig werden dadurch bestimmt, dass das Programm eine oder mehrere bedingte Anweisungen festlegt.
Wenn die Bedingung wahr ist, wird der angegebene Programmcode ausgeführt; wenn die Bedingung falsch ist, wird anderer angegebener Code ausgeführt.
Das folgende ist ein typisches Flussdiagramm zur Ablaufsteuerung:
Zig bietet die folgenden Kontrollstrukturanweisungen:
if-Anweisung
Syntax
Eine einfache if-Anweisung enthält eine Bedingung und einen zugehörigen Codeblock. Wenn die Bedingung wahr ist, wird der Codeblock ausgeführt.
if (<condition) {
// 如果 condition 为 true,执行这里的代码
}
Die if-else-Anweisung fügt einer einfachen if-Anweisung einen else-Zweig hinzu. Wenn die Bedingung im if falsch ist, wird der Code im else-Zweig ausgeführt.
if (<condition>) {
// 如果 condition 为 true,执行这里的代码
} else {
// 如果 condition 为 false,执行这里的代码
}
condition:Ein boolescher Ausdruck. Wenn die Bedingung wahr ist, wird der erste Codeblock ausgeführt; andernfalls wird der else-Codeblock ausgeführt.
Beispiel
pub fn main() void {
const x: i32 = 10;
if (x > 5) {
std.debug.print("x ist größer als 5\n", .{});
} else {
std.debug.print("x ist nicht größer als 5\n", .{});
}
}
Die Ausgabe nach Kompilierung und Ausführung ist:
x is greater than 5
if-else...else-Anweisung
Syntax
Unterstützt mehrere Bedingungsprüfungen, wobei jede Bedingung der Reihe nach geprüft wird, bis eine Bedingung wahr ist und der entsprechende Codeblock ausgeführt wird.
Beispiel
// Wenn condition1 wahr ist, den Code hier ausführen
} else if (condition2) {
// Wenn condition2 wahr ist, den Code hier ausführen
} else {
// Wenn alle Bedingungen falsch sind, den Code hier ausführen
}
Beispiel
pub fn main() void {
const x: i32 = 10;
if (x > 10) {
std.debug.print("x ist größer als 10\n", .{});
} else if (x == 10) {
std.debug.print("x ist gleich 10\n", .{});
} else {
std.debug.print("x ist kleiner als 10\n", .{});
}
}
Die Ausgabe nach Kompilierung und Ausführung ist:
x is equal to 10
Verschachtelte if-else
if-else-Anweisungen können verschachtelt werden, was bedeutet, dass man eine weitere if-Anweisung innerhalb eines if- oder else-Zweigs einfügen kann.
if (<条件1>) {
// 如果条件1为真,执行这里的代码
if (<条件2>) {
// 如果条件1和条件2都为真,执行这里的代码
} else {
// 如果条件1为真但条件2为假,执行这里的代码
}
} else {
// 如果条件1为假,执行这里的代码
}
Beispiel
pub fn main() void {
const input = 5; // Angenommen, dies ist die Eingabe des Benutzers
const max_value = 10;
if (input > max_value) {
std.debug.print("Eingabe ist größer als {}\n", .{max_value});
} else if (input == max_value) {
std.debug.print("Eingabe ist gleich {}\n", .{max_value});
} else {
if (input < 5) {
std.debug.print("Eingabe ist kleiner als 5\n");
} else {
std.debug.print("Eingabe liegt zwischen 5 und {}\n", .{max_value});
}
}
}
Die Ausgabe nach Kompilierung und Ausführung ist:
Input is between 5 and 10
Typinferenz in if-Anweisungen
Der Zig-Compiler kann den Typ von Variablen in if-Anweisungen ableiten, wenn das Ergebnis des Bedingungsausdrucks ein boolescher Wert ist.
const condition = true;
if (condition) {
// 这里 condition 的类型是 bool,编译器自动推导
}
Andere Erweiterungen