int logarithmCeiling(int x) {
int power = 1;
int count = 0;
while (power < x) {
power = 2 *power;
count = count +1;
}
return count;
}
上面的代碼是爲了使用while循環計算並返回給定正整數的較低對數的Java方法。我將如何爲上面的循環提供一個不變量?即在其開始之前保持,每當循環體結束時,以及循環條件的否定。Java循環不變
雖然正確,但這並不像您對後期條件那樣嚴格。 5 <= 1024 = 2^10可能是這樣的一個實例,但是10個明顯不會是正確的日誌。當然,這個方法確實是部分正確的,並且可以顯示更強的後置條件 – 2011-05-23 16:14:28