Что эквивалентно '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 {
    ();
}
Другие вопросы по тегам