Что эквивалентно 'break' в q#?
Как бы я вырвался из петли, когда встретил условие? Например:
for (i in 0..10){
if (i==3){
// equivalent of break
}
}
1 ответ
Решение
В Q# нет перерыва; тем не менее, вы можете реализовать это поведение, используя цикл повторения до успеха.
Q# не является языком общего назначения, и он разработан, чтобы позволить много оптимизаций, когда программа будет выполняться на квантовом устройстве. Циклы являются одним из примеров такого дизайна: если вы заранее знаете, сколько итераций выполнит ваш цикл, используйте цикл for, если вам нужно выполнять итерации до тех пор, пока не будет выполнено какое-то условие, используйте цикл repeat-till-success.
Ваш пример (который на самом деле не является хорошим примером того, почему вам нужен перерыв) будет записан примерно так:
mutable i = 0;
repeat {
set i = i + 1;
} until (i == 10 || i == 3)
fixup {
();
}