【问题标题】:What is the equivalent of 'break' in q#?q#中的'break'相当于什么?
【发布时间】:2018-12-15 23:02:17
【问题描述】:

当我满足条件时,我将如何跳出循环? 例如:

for (i in 0..10){
    if (i==3){
        // equivalent of break
     }
}

【问题讨论】:

标签: break q#


【解决方案1】:

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 关键字很难做到这一点,因此使用其他控制流结构会很有帮助。
猜你喜欢
  • 2016-10-09
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 2019-09-12
  • 2020-02-28
  • 2021-12-17
相关资源
最近更新 更多