2010-05-30 49 views
8

什麼是while循環中的off-by-one錯誤?我如何弄清楚它以及如何解決它?由於什麼是while循環中的錯誤錯誤?

+0

如果您的代碼中存在特定的錯誤,那麼您需要發佈代碼。 – 2010-05-30 19:10:54

+0

不,不是它不是一個程序來糾正我必須跟蹤一些程序來知道錯誤是什麼,它是爲了一個決賽,所以我不能指望一個。 – Dina 2010-05-30 20:10:13

+0

需要'家庭作業'標籤? – 2010-05-30 20:30:25

回答

19

off-by-one error是,例如當你寫打算執行循環n次,寫類似:

for (int i = 1; i < n; ++i) { ... } 

或:

for (int i = 0; i <= n; ++i) { ... } 

在循環將要執行的第一案(n-1)次,在第二種情況下(n + 1)次,給出名稱。其他變化也是可能的,但通常由於循環變量的初始值或循環的結束條件中的錯誤,循環執行的次數太多或太少。

迴路可以正確地寫爲:

for (int i = 0; i < n; ++i) { ... } 

for循環是一個while循環只是一個特例。 while循環中可能會出現同樣的錯誤。

+7

嘿,你的例子是2關閉;) – Agos 2010-05-30 19:28:45