标签: jml
decreases之后的语句必须在每个循环中严格地变小,并且始终为非零。但是它必须达到0吗?是否必须缩小一个?
decreases
答案 0 :(得分:2)
如the JML documentation中所述,减少(您也可以写减少)意味着具有该说明符的int或long表达式“必须不小于循环执行时为0,每次循环时必须减少至少一(1)。“
所以它可能会或可能不会达到0,但不能小于0。此外,它必须至少变小,但不一定是一个。请注意文档中的示例以获得更精确的解释。