2014-03-29 105 views
0

我想知道如何在javascript中編寫此代碼。這個想法是,它需要時間和咖啡因的含量,使用一個循環每小時減少,直到它達到20毫克,然後停下來,告訴你什麼時候達到半衰期(在5小時),然後你的就寢時間在20毫克。For Loop降低咖啡因含量

我現在還沒有爲循環運作。我試圖圍繞如何調整for循環來解決問題。我是否輸入了咖啡因或小時的值?

以下是我有:

function brew() { 
    var lastTime = 15; // military time for 3pm 
    var lastCoffee = 150; // 150mg of caffeine 

    for (var i = 1; lastCoffee <= 20; i++) { 
     var caffeine = lastCoffee/2; // my bootleg half life equation  
    }; 
} 
+0

無需分號的解釋後循環之後。 – Yogesh

+1

你標記爲'jquery',但你不需要它 – Paolo

回答

1

while循環做到這一點,它更容易。

我對每個涉及的值都使用了一個特定的變量,包括常量;這讓事情變得更容易閱讀(並且也是一個很好的實踐)。

function brew() { 

    // input values 

    var lastTime = 15;  //military time for 3pm 
    var lastCoffee = 150;  // 150mg of caffeine 

    // constant 

    var caffeineHalfLife = 5; // 5 hours 
    ver bedTimeCaffeine = 20; // 20mg of caffeine 

    // variables 

    var caffeine; 
    var bedTime; 

    // setup 

    caffeine = lastCoffee; 
    bedTime = lastTime; 

    // loop 

    while(caffeine > bedTimeCaffeine) { // go on until caffeine > bedTimeCaffeine 
     caffeine /= 2;      // the caffeine value become half... 
     bedTime += caffeineHalfLife;  // ...every 5 hours (caffeineHalfLife) 
    } 

} 

,但如果你想堅持到for那麼最後部分變成

// setup 

    caffeine = lastCoffee; 

    // loop 

    for(bedTime = lastTime; caffeine > bedTimeCaffeine; bedTime += caffeineHalfLife) { 
     caffeine /= 2; 
    } 

看到http://www.w3schools.com/js/js_loop_for.aspfor循環