[英]C# -infinite for loop
private void button1_Click(object sender, EventArgs e)
{
int j, counter=0;
j = 2;
for (int i = 0; i < 100; i=i*2)
{
j = j - i;
while (j<25)
{
j = j + 5;
counter++;
}
}
MessageBox.Show("Test" + counter);
}
你好。 我正在嘗試調試此代碼,但我無法。
任何人都可以解釋為什么這會導致無限循環?
這是因為你從零開始i
; 無論你加倍多少次,它都會保持為零:)
for (int i = 1; i < 100; i=i*2) {
j = j - i;
while (j<25) {
j = j + 5;
counter++;
}
}
其他人已經解釋了直接原因。 讓我給你一個“算法”來解決這些問題,這樣你就可以在將來自己解決它們:在調試器中使用“Locals”或“Autos”或“Watch”甚至“Immediate”面板檢查變量的值。 您也可以將鼠標箭頭放在變量上,彈出的提示將允許您查看當前變量值。
如果你在這種情況下做到了這一點,你會注意到i
永遠保持0並且可能得出結論問題的根本原因是什么。
原因是你的條件是我
for (int i = 0; i < 100; i=i*2)
在第一個循環中,i = 0,0 * 2 = 0,所以我永遠保持在0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.