这是过去试卷中的一道题。
为什么i<=n
循环测试说循环不变量说i<n
。
是一个合适的答案:它说i<=n
as i
will equaln
在 while 循环的失败条件下。因此,第 6 次迭代i
将等于n
失败条件下的值 6。但是,while 循环本身状态i<n
为i
从 0 开始,并且将完成循环一次i
等于 5。
private int n =6;
public int fact(){
int i = 0;
int f = 1;
/**loop invariant
* 0<=i<=n
* f=i!
*/
while(i<n){//loop test
i=i+1;
f=f*i;
}
return f;
}