ReferenceError: time is not defined












0















Variable times seems undefined, but as a newbie to js, can't understand whats the prob. Tried to declare var time globally then incremented inside condition but not working.






var j1 = 0;
var j2 = 0;
var j3 = 4;

var time;

if((j1||j2||j3)>=3){


time+5000;

while(time === 30000){
if(j1>=3){
alert("Junction 1 is flooded");
}else if(j2>=3){
alert("Junction 2 is flooded");
}else if(j3>=3){
alert("Junction 3 is flooded");
}else if ((j1&&j2)>=3){
alert("Junction 1 & 2 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j2&&j3)>=3){
alert("Junction 2 & 3 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j1&&j3&&j2)>=3){
alert("All 3 junctions are flooded");
}
}
}












share|improve this question























  • times is undefined while time is declared but not defined too. time + 5000; isn't helpful, did you mean time += 5000;?

    – Rafael
    Nov 21 '18 at 16:25













  • if((j1||j2||j3) >= 3) is a non sense, you can't factorise conditions such way.

    – Cid
    Nov 21 '18 at 16:34











  • while (time === 30000) this part will always be false and the loop never executed.

    – Cid
    Nov 21 '18 at 16:35











  • the value of j1,j2,j3 gets changed every 10 seconds with updated data and value of time is updated as well

    – inzam zaman
    Nov 21 '18 at 17:51
















0















Variable times seems undefined, but as a newbie to js, can't understand whats the prob. Tried to declare var time globally then incremented inside condition but not working.






var j1 = 0;
var j2 = 0;
var j3 = 4;

var time;

if((j1||j2||j3)>=3){


time+5000;

while(time === 30000){
if(j1>=3){
alert("Junction 1 is flooded");
}else if(j2>=3){
alert("Junction 2 is flooded");
}else if(j3>=3){
alert("Junction 3 is flooded");
}else if ((j1&&j2)>=3){
alert("Junction 1 & 2 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j2&&j3)>=3){
alert("Junction 2 & 3 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j1&&j3&&j2)>=3){
alert("All 3 junctions are flooded");
}
}
}












share|improve this question























  • times is undefined while time is declared but not defined too. time + 5000; isn't helpful, did you mean time += 5000;?

    – Rafael
    Nov 21 '18 at 16:25













  • if((j1||j2||j3) >= 3) is a non sense, you can't factorise conditions such way.

    – Cid
    Nov 21 '18 at 16:34











  • while (time === 30000) this part will always be false and the loop never executed.

    – Cid
    Nov 21 '18 at 16:35











  • the value of j1,j2,j3 gets changed every 10 seconds with updated data and value of time is updated as well

    – inzam zaman
    Nov 21 '18 at 17:51














0












0








0








Variable times seems undefined, but as a newbie to js, can't understand whats the prob. Tried to declare var time globally then incremented inside condition but not working.






var j1 = 0;
var j2 = 0;
var j3 = 4;

var time;

if((j1||j2||j3)>=3){


time+5000;

while(time === 30000){
if(j1>=3){
alert("Junction 1 is flooded");
}else if(j2>=3){
alert("Junction 2 is flooded");
}else if(j3>=3){
alert("Junction 3 is flooded");
}else if ((j1&&j2)>=3){
alert("Junction 1 & 2 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j2&&j3)>=3){
alert("Junction 2 & 3 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j1&&j3&&j2)>=3){
alert("All 3 junctions are flooded");
}
}
}












share|improve this question














Variable times seems undefined, but as a newbie to js, can't understand whats the prob. Tried to declare var time globally then incremented inside condition but not working.






var j1 = 0;
var j2 = 0;
var j3 = 4;

var time;

if((j1||j2||j3)>=3){


time+5000;

while(time === 30000){
if(j1>=3){
alert("Junction 1 is flooded");
}else if(j2>=3){
alert("Junction 2 is flooded");
}else if(j3>=3){
alert("Junction 3 is flooded");
}else if ((j1&&j2)>=3){
alert("Junction 1 & 2 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j2&&j3)>=3){
alert("Junction 2 & 3 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j1&&j3&&j2)>=3){
alert("All 3 junctions are flooded");
}
}
}








var j1 = 0;
var j2 = 0;
var j3 = 4;

var time;

if((j1||j2||j3)>=3){


time+5000;

while(time === 30000){
if(j1>=3){
alert("Junction 1 is flooded");
}else if(j2>=3){
alert("Junction 2 is flooded");
}else if(j3>=3){
alert("Junction 3 is flooded");
}else if ((j1&&j2)>=3){
alert("Junction 1 & 2 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j2&&j3)>=3){
alert("Junction 2 & 3 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j1&&j3&&j2)>=3){
alert("All 3 junctions are flooded");
}
}
}





var j1 = 0;
var j2 = 0;
var j3 = 4;

var time;

if((j1||j2||j3)>=3){


time+5000;

while(time === 30000){
if(j1>=3){
alert("Junction 1 is flooded");
}else if(j2>=3){
alert("Junction 2 is flooded");
}else if(j3>=3){
alert("Junction 3 is flooded");
}else if ((j1&&j2)>=3){
alert("Junction 1 & 2 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j2&&j3)>=3){
alert("Junction 2 & 3 are flooded");
}else if ((j1&&j3)>=3){
alert("Junction 1 & 3 are flooded");
}else if ((j1&&j3&&j2)>=3){
alert("All 3 junctions are flooded");
}
}
}






javascript






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 16:22









inzam zamaninzam zaman

63




63













  • times is undefined while time is declared but not defined too. time + 5000; isn't helpful, did you mean time += 5000;?

    – Rafael
    Nov 21 '18 at 16:25













  • if((j1||j2||j3) >= 3) is a non sense, you can't factorise conditions such way.

    – Cid
    Nov 21 '18 at 16:34











  • while (time === 30000) this part will always be false and the loop never executed.

    – Cid
    Nov 21 '18 at 16:35











  • the value of j1,j2,j3 gets changed every 10 seconds with updated data and value of time is updated as well

    – inzam zaman
    Nov 21 '18 at 17:51



















  • times is undefined while time is declared but not defined too. time + 5000; isn't helpful, did you mean time += 5000;?

    – Rafael
    Nov 21 '18 at 16:25













  • if((j1||j2||j3) >= 3) is a non sense, you can't factorise conditions such way.

    – Cid
    Nov 21 '18 at 16:34











  • while (time === 30000) this part will always be false and the loop never executed.

    – Cid
    Nov 21 '18 at 16:35











  • the value of j1,j2,j3 gets changed every 10 seconds with updated data and value of time is updated as well

    – inzam zaman
    Nov 21 '18 at 17:51

















times is undefined while time is declared but not defined too. time + 5000; isn't helpful, did you mean time += 5000;?

– Rafael
Nov 21 '18 at 16:25







times is undefined while time is declared but not defined too. time + 5000; isn't helpful, did you mean time += 5000;?

– Rafael
Nov 21 '18 at 16:25















if((j1||j2||j3) >= 3) is a non sense, you can't factorise conditions such way.

– Cid
Nov 21 '18 at 16:34





if((j1||j2||j3) >= 3) is a non sense, you can't factorise conditions such way.

– Cid
Nov 21 '18 at 16:34













while (time === 30000) this part will always be false and the loop never executed.

– Cid
Nov 21 '18 at 16:35





while (time === 30000) this part will always be false and the loop never executed.

– Cid
Nov 21 '18 at 16:35













the value of j1,j2,j3 gets changed every 10 seconds with updated data and value of time is updated as well

– inzam zaman
Nov 21 '18 at 17:51





the value of j1,j2,j3 gets changed every 10 seconds with updated data and value of time is updated as well

– inzam zaman
Nov 21 '18 at 17:51












3 Answers
3






active

oldest

votes


















0














time+5000; doesn't do anything for you because time is undefined because all you did was declare, but not initialize it with:



var time; // Declared but not initialized === undefined


and you can't do math with undefined.



Additionally, you aren't capturing the result of the math operation.



Make it:



var time = 0; // Declared and initialized ;)


and then:



time = time + 5000; // Assign result of expression back to variable


Next, your if conditions are incorrect. Tests for multiple values must be done individually, so this:



if((j1||j2||j3)>=3){


needs to become this:



if(j1 >= 3 || j2 >= 3 || j3 >=3){


Lastly, the way your code is now, time will only ever be incremented once, to a value of 5000, so you will never enter into your while loop. Then, even if do enter your loop, you don't modify the value of time within it, so the loop will never end. You need to set up some kind of condition to check to determine if the loop should continue. It should be something like:



while(time < 50000){
if(time === 30000){
if(j1 >= 3){
alert("Junction 1 is flooded");
}else if(j2 >= 3){
alert("Junction 2 is flooded");
}else if(j3 >= 3){
alert("Junction 3 is flooded");
}else if (j1 >= 3 && j2 >=3){
alert("Junction 1 & 2 are flooded");
}else if (j1 >= 3 && j3 >= 3){
alert("Junction 1 & 3 are flooded");
}else if (j2 >= 3 && j3 >=3){
alert("Junction 2 & 3 are flooded");
}else if (j1 >= 3 && j3>=3){
alert("Junction 1 & 3 are flooded");
}else if (j1 >=3 && j3 >=3 &&j2 >=3){
alert("All 3 junctions are flooded");
}
}

time = time + 5000; // <-- You need to create a situation where the loop can end!
}


So, putting it all together:






var j1 = 0;
var j2 = 0;
var j3 = 4;

var time = 0;

if(j1 >= 3 || j2 >= 3 || j3 >=3){

while(time < 50000){
// Check what time is with an "if"
if(time === 30000){
if(j1 >= 3){
alert("Junction 1 is flooded");
}else if(j2 >= 3){
alert("Junction 2 is flooded");
}else if(j3 >= 3){
alert("Junction 3 is flooded");
}else if (j1 >= 3 && j2 >=3){
alert("Junction 1 & 2 are flooded");
}else if (j1 >= 3 && j3 >= 3){
alert("Junction 1 & 3 are flooded");
}else if (j2 >= 3 && j3 >=3){
alert("Junction 2 & 3 are flooded");
}else if (j1 >= 3 && j3>=3){
alert("Junction 1 & 3 are flooded");
}else if (j1 >=3 && j3 >=3 &&j2 >=3){
alert("All 3 junctions are flooded");
}
}

time = time + 5000; // <-- You need to create a situation where the loop can end!
}
}








share|improve this answer


























  • while(time === 30000) will always be false, and if it's true, it will result an infinite loop

    – Cid
    Nov 21 '18 at 16:37











  • @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

    – Scott Marcus
    Nov 21 '18 at 16:47



















0














You should set time equal to 0 and use += to increment it.



var time=0;

if(j1>=3||j2>=3||j3>=3){


time+=5000;


Just writing var time; is the same as var time = undefined and you can not perform mathematical operations on undefined. You need to initialize the variable.



To increment the time variable, you need to set it to 5000 plus itself or time = time + 5000 or as shorthand, time += 5000.






share|improve this answer

































    0














    use time+=5000; instead time+5000;






    share|improve this answer


























    • Still won't work because time is not initialized.

      – Scott Marcus
      Nov 21 '18 at 16:29











    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416402%2freferenceerror-time-is-not-defined%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    time+5000; doesn't do anything for you because time is undefined because all you did was declare, but not initialize it with:



    var time; // Declared but not initialized === undefined


    and you can't do math with undefined.



    Additionally, you aren't capturing the result of the math operation.



    Make it:



    var time = 0; // Declared and initialized ;)


    and then:



    time = time + 5000; // Assign result of expression back to variable


    Next, your if conditions are incorrect. Tests for multiple values must be done individually, so this:



    if((j1||j2||j3)>=3){


    needs to become this:



    if(j1 >= 3 || j2 >= 3 || j3 >=3){


    Lastly, the way your code is now, time will only ever be incremented once, to a value of 5000, so you will never enter into your while loop. Then, even if do enter your loop, you don't modify the value of time within it, so the loop will never end. You need to set up some kind of condition to check to determine if the loop should continue. It should be something like:



    while(time < 50000){
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }


    So, putting it all together:






    var j1 = 0;
    var j2 = 0;
    var j3 = 4;

    var time = 0;

    if(j1 >= 3 || j2 >= 3 || j3 >=3){

    while(time < 50000){
    // Check what time is with an "if"
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }
    }








    share|improve this answer


























    • while(time === 30000) will always be false, and if it's true, it will result an infinite loop

      – Cid
      Nov 21 '18 at 16:37











    • @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

      – Scott Marcus
      Nov 21 '18 at 16:47
















    0














    time+5000; doesn't do anything for you because time is undefined because all you did was declare, but not initialize it with:



    var time; // Declared but not initialized === undefined


    and you can't do math with undefined.



    Additionally, you aren't capturing the result of the math operation.



    Make it:



    var time = 0; // Declared and initialized ;)


    and then:



    time = time + 5000; // Assign result of expression back to variable


    Next, your if conditions are incorrect. Tests for multiple values must be done individually, so this:



    if((j1||j2||j3)>=3){


    needs to become this:



    if(j1 >= 3 || j2 >= 3 || j3 >=3){


    Lastly, the way your code is now, time will only ever be incremented once, to a value of 5000, so you will never enter into your while loop. Then, even if do enter your loop, you don't modify the value of time within it, so the loop will never end. You need to set up some kind of condition to check to determine if the loop should continue. It should be something like:



    while(time < 50000){
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }


    So, putting it all together:






    var j1 = 0;
    var j2 = 0;
    var j3 = 4;

    var time = 0;

    if(j1 >= 3 || j2 >= 3 || j3 >=3){

    while(time < 50000){
    // Check what time is with an "if"
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }
    }








    share|improve this answer


























    • while(time === 30000) will always be false, and if it's true, it will result an infinite loop

      – Cid
      Nov 21 '18 at 16:37











    • @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

      – Scott Marcus
      Nov 21 '18 at 16:47














    0












    0








    0







    time+5000; doesn't do anything for you because time is undefined because all you did was declare, but not initialize it with:



    var time; // Declared but not initialized === undefined


    and you can't do math with undefined.



    Additionally, you aren't capturing the result of the math operation.



    Make it:



    var time = 0; // Declared and initialized ;)


    and then:



    time = time + 5000; // Assign result of expression back to variable


    Next, your if conditions are incorrect. Tests for multiple values must be done individually, so this:



    if((j1||j2||j3)>=3){


    needs to become this:



    if(j1 >= 3 || j2 >= 3 || j3 >=3){


    Lastly, the way your code is now, time will only ever be incremented once, to a value of 5000, so you will never enter into your while loop. Then, even if do enter your loop, you don't modify the value of time within it, so the loop will never end. You need to set up some kind of condition to check to determine if the loop should continue. It should be something like:



    while(time < 50000){
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }


    So, putting it all together:






    var j1 = 0;
    var j2 = 0;
    var j3 = 4;

    var time = 0;

    if(j1 >= 3 || j2 >= 3 || j3 >=3){

    while(time < 50000){
    // Check what time is with an "if"
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }
    }








    share|improve this answer















    time+5000; doesn't do anything for you because time is undefined because all you did was declare, but not initialize it with:



    var time; // Declared but not initialized === undefined


    and you can't do math with undefined.



    Additionally, you aren't capturing the result of the math operation.



    Make it:



    var time = 0; // Declared and initialized ;)


    and then:



    time = time + 5000; // Assign result of expression back to variable


    Next, your if conditions are incorrect. Tests for multiple values must be done individually, so this:



    if((j1||j2||j3)>=3){


    needs to become this:



    if(j1 >= 3 || j2 >= 3 || j3 >=3){


    Lastly, the way your code is now, time will only ever be incremented once, to a value of 5000, so you will never enter into your while loop. Then, even if do enter your loop, you don't modify the value of time within it, so the loop will never end. You need to set up some kind of condition to check to determine if the loop should continue. It should be something like:



    while(time < 50000){
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }


    So, putting it all together:






    var j1 = 0;
    var j2 = 0;
    var j3 = 4;

    var time = 0;

    if(j1 >= 3 || j2 >= 3 || j3 >=3){

    while(time < 50000){
    // Check what time is with an "if"
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }
    }








    var j1 = 0;
    var j2 = 0;
    var j3 = 4;

    var time = 0;

    if(j1 >= 3 || j2 >= 3 || j3 >=3){

    while(time < 50000){
    // Check what time is with an "if"
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }
    }





    var j1 = 0;
    var j2 = 0;
    var j3 = 4;

    var time = 0;

    if(j1 >= 3 || j2 >= 3 || j3 >=3){

    while(time < 50000){
    // Check what time is with an "if"
    if(time === 30000){
    if(j1 >= 3){
    alert("Junction 1 is flooded");
    }else if(j2 >= 3){
    alert("Junction 2 is flooded");
    }else if(j3 >= 3){
    alert("Junction 3 is flooded");
    }else if (j1 >= 3 && j2 >=3){
    alert("Junction 1 & 2 are flooded");
    }else if (j1 >= 3 && j3 >= 3){
    alert("Junction 1 & 3 are flooded");
    }else if (j2 >= 3 && j3 >=3){
    alert("Junction 2 & 3 are flooded");
    }else if (j1 >= 3 && j3>=3){
    alert("Junction 1 & 3 are flooded");
    }else if (j1 >=3 && j3 >=3 &&j2 >=3){
    alert("All 3 junctions are flooded");
    }
    }

    time = time + 5000; // <-- You need to create a situation where the loop can end!
    }
    }






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 21 '18 at 16:51

























    answered Nov 21 '18 at 16:25









    Scott MarcusScott Marcus

    38.8k52036




    38.8k52036













    • while(time === 30000) will always be false, and if it's true, it will result an infinite loop

      – Cid
      Nov 21 '18 at 16:37











    • @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

      – Scott Marcus
      Nov 21 '18 at 16:47



















    • while(time === 30000) will always be false, and if it's true, it will result an infinite loop

      – Cid
      Nov 21 '18 at 16:37











    • @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

      – Scott Marcus
      Nov 21 '18 at 16:47

















    while(time === 30000) will always be false, and if it's true, it will result an infinite loop

    – Cid
    Nov 21 '18 at 16:37





    while(time === 30000) will always be false, and if it's true, it will result an infinite loop

    – Cid
    Nov 21 '18 at 16:37













    @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

    – Scott Marcus
    Nov 21 '18 at 16:47





    @Cid I didn't initially intend to fix every error in the code as the question didn't ask about those things. But, I have at this point.

    – Scott Marcus
    Nov 21 '18 at 16:47













    0














    You should set time equal to 0 and use += to increment it.



    var time=0;

    if(j1>=3||j2>=3||j3>=3){


    time+=5000;


    Just writing var time; is the same as var time = undefined and you can not perform mathematical operations on undefined. You need to initialize the variable.



    To increment the time variable, you need to set it to 5000 plus itself or time = time + 5000 or as shorthand, time += 5000.






    share|improve this answer






























      0














      You should set time equal to 0 and use += to increment it.



      var time=0;

      if(j1>=3||j2>=3||j3>=3){


      time+=5000;


      Just writing var time; is the same as var time = undefined and you can not perform mathematical operations on undefined. You need to initialize the variable.



      To increment the time variable, you need to set it to 5000 plus itself or time = time + 5000 or as shorthand, time += 5000.






      share|improve this answer




























        0












        0








        0







        You should set time equal to 0 and use += to increment it.



        var time=0;

        if(j1>=3||j2>=3||j3>=3){


        time+=5000;


        Just writing var time; is the same as var time = undefined and you can not perform mathematical operations on undefined. You need to initialize the variable.



        To increment the time variable, you need to set it to 5000 plus itself or time = time + 5000 or as shorthand, time += 5000.






        share|improve this answer















        You should set time equal to 0 and use += to increment it.



        var time=0;

        if(j1>=3||j2>=3||j3>=3){


        time+=5000;


        Just writing var time; is the same as var time = undefined and you can not perform mathematical operations on undefined. You need to initialize the variable.



        To increment the time variable, you need to set it to 5000 plus itself or time = time + 5000 or as shorthand, time += 5000.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 21 '18 at 16:46

























        answered Nov 21 '18 at 16:26









        hev1hev1

        5,6083528




        5,6083528























            0














            use time+=5000; instead time+5000;






            share|improve this answer


























            • Still won't work because time is not initialized.

              – Scott Marcus
              Nov 21 '18 at 16:29
















            0














            use time+=5000; instead time+5000;






            share|improve this answer


























            • Still won't work because time is not initialized.

              – Scott Marcus
              Nov 21 '18 at 16:29














            0












            0








            0







            use time+=5000; instead time+5000;






            share|improve this answer















            use time+=5000; instead time+5000;







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 21 '18 at 16:47









            pushkin

            4,030112752




            4,030112752










            answered Nov 21 '18 at 16:25









            karthikdivikarthikdivi

            1,27411430




            1,27411430













            • Still won't work because time is not initialized.

              – Scott Marcus
              Nov 21 '18 at 16:29



















            • Still won't work because time is not initialized.

              – Scott Marcus
              Nov 21 '18 at 16:29

















            Still won't work because time is not initialized.

            – Scott Marcus
            Nov 21 '18 at 16:29





            Still won't work because time is not initialized.

            – Scott Marcus
            Nov 21 '18 at 16:29


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416402%2freferenceerror-time-is-not-defined%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

            Alcedinidae

            RAC Tourist Trophy