【发布时间】:2018-12-15 23:02:17
【问题描述】:
当我满足条件时,我将如何跳出循环? 例如:
for (i in 0..10){
if (i==3){
// equivalent of break
}
}
【问题讨论】:
当我满足条件时,我将如何跳出循环? 例如:
for (i in 0..10){
if (i==3){
// equivalent of break
}
}
【问题讨论】:
Q#没有中断;但是,您可以使用 repeat-until-success loop 来实现此行为。
Q# 不是一种通用语言,它旨在允许对何时在量子设备上执行程序进行大量优化。循环就是这种设计的一个例子:如果你事先知道你的循环会进行多少次迭代,使用 for 循环,如果你需要迭代直到满足某个条件,使用 repeat-until-success 循环。
你的例子(这并不是你为什么需要休息的一个很好的例子)将被写成这样:
mutable i = 0;
repeat {
set i = i + 1;
} until (i == 10 || i == 3)
fixup {
();
}
【讨论】:
adjoint auto 这样的功能需要编译器计算“向后运行”时操作的行为方式。使用 break 关键字很难做到这一点,因此使用其他控制流结构会很有帮助。