我试图了解循环不变性如何与中断相互作用。 CLRS 3e(pg19)将循环不变式描述为要求
如果在循环迭代之前为true,则在下一次迭代之前保持为true。
因此,以下循环很简单
for i = 1 to 5
if i == 3 then break
可以公平地说 i <4 是循环的不变性质吗?争论是,由于循环在 break 语句处终止,因此在违反该属性后就不会进行迭代。
答案 0 :(得分:2)
是的,由于您提到的原因,这将是不变的。 有用不变式是一个独立的问题,取决于您要证明的内容。