这是过去试卷中的一道题。
为什么i<=n循环测试说循环不变量说i<n。
是一个合适的答案:它说i<=nas iwill 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;
}