これは過去の試験問題からの問題です。
i<=n
ループ テストで と表示されているのに、なぜループ不変条件が表示されるのですかi<n
。
適切な答えは次のとおりです。while ループの失敗条件でi<=n
as i
will equals と表示されます。n
したがって、 の 6 回目の繰り返しは、失敗した状態でi
は値 6 に等しくなります。n
ただし、while ループ自体はi<n
、i
0 から開始しi
、5 に等しい 1 回ループを終了すると述べています。
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;
}