2016-05-15 109 views
0

我有一些這樣的代碼行。 任何人都可以爲我解釋爲什麼「while循環」不停止。它保持顯示比平衡更多的結果。爲什麼我的「while循環」不停止

static void Main(string[] args) 
{ 
    const double balance = 303.91; 
    const double phonePrice = 99.99; 
    double a = 0; 

    while (a < balance) 
    { 
     a = a + phonePrice; 
    } 
    Console.WriteLine(a); 
    Console.ReadLine(); 
} 
+3

它完全是你寫的。當a大於餘額時,循環結束,然後打印出比平衡大的人。你期望在這裏發生什麼? – Steve

+0

那是因爲你沒有增量。基本上a總是零而不會上升。 – ARLCode

+0

它應該運行3次。 – Jerfov2

回答

1

正在檢查的值之後加那麼它首先添加然後檢查是否a大於balance或不那麼一次額外phoneprice中加入a。讓你的時間循環

while ((a + phonePrice) < balance) 
    { 
    a = a + phonePrice; 
    } 
+0

謝謝,我現在明白了 – kaynb

3

它確實是你寫的。
循環結束時,一個比平衡更大,那麼你打印一個變量

如果你希望停止循環之前錢用完了,那麼你需要改變循環退出條件

static void Main(string[] args) 
{ 
    const double balance = 303.91; 
    const double phonePrice = 99.99; 
    double a = 0; 

    // You don't want to run out of money, so check if buying 
    // another phone will bankrupt your finances.... 
    while ((a + phonePrice) < balance) 
    { 
     a = a + phonePrice; 
    } 
    Console.WriteLine(a); // a = 299,97 
    Console.ReadLine(); 
} 
+0

謝謝,我現在明白了 – kaynb