decreases
之后的语句在每个循环中都必须严格变小,并且始终为非零。但它必须达到0吗?它一定要小一点吗?
如JML文档中所述,递减(您也可以编写递增)意味着带有该说明符的int或long表达式"在执行循环时必须不小于0,并且每次循环时必须至少递减一(1)。"
因此,它可能达到0,也可能不会达到0,但不能小于0。此外,它必须至少缩小一倍,但不一定要缩小一倍。请注意文档中的示例以获得更精确的解释。