2016-05-15 6 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

ので、それはとても1時間余分にphonepriceがaが付加されているabalanceより大きいかどうかをチェック後、最初の追加。あなたのwhileループを作成してください

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

関連する問題