2014-03-29 104 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循环