Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Schleifen, die eine Abfolge von Werten durchlaufen, werden als for Schleifen in Q#ausgedrückt. Eine for Schleife in Q# bricht nicht basierend auf einer Bedingung, sondern entspricht einer Iteration, oder was häufig als foreach oder iter in anderen Sprachen ausgedrückt wird. Es gibt derzeit zwei Datentypen in Q#, die Iteration unterstützen: Arrays und Bereiche.
Der Ausdruck besteht aus dem Schlüsselwort for, gefolgt von einem Symbol- oder Symbol-Tupel, dem Schlüsselwort in, einem Ausdruck von Array oder Range Typ und einem Anweisungsblock.
Der Anweisungsblock (der Textkörper der Schleife) wird wiederholt ausgeführt, wobei mindestens eine Schleifenvariable an jeden Wert im Bereich oder Array gebunden ist. Die gleichen Dekonstruktionsregeln gelten für die definierten Schleifenvariablen wie für alle anderen Variablenzuweisungen, z. B. Bindungen in let, mutable, useund borrow Anweisungen. Die Schleifenvariablen selbst sind unveränderlich gebunden, können nicht innerhalb des Textkörpers der Schleife neu zugewiesen werden und gehen außerhalb des Gültigkeitsbereichs, wenn die Schleife beendet wird.
Der Ausdruck, über den die Schleife durchlaufen wird, wird vor dem Eingeben der Schleife ausgewertet und ändert sich nicht, während die Schleife ausgeführt wird.
Dieses Szenario wird im folgenden Beispiel veranschaulicht. Angenommen, qubits ein Wert vom Typ Qubit[]ist, dann
for qubit in qubits {
H(qubit);
}
mutable results : (Int, Result)[] = [];
for index in 0 .. Length(qubits) - 1 {
results += [(index, M(qubits[index]))];
}
mutable accumulated = 0;
for (index, measured) in results {
if measured == One {
accumulated += 1 <<< index;
}
}
Zielspezifische Einschränkungen
Da in breakkeine continue oder Q# Grundtypen vorhanden sind, wird die Länge der Schleife bekannt, sobald der Iterationswert bekannt ist. So können for Schleifen auf allen Quantenhardware ausgeführt werden.