ReferenceError: time is not defined
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");
}
}
}
javascript
add a comment |
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");
}
}
}
javascript
times
isundefined
whiletime
is declared but not defined too.time + 5000;
isn't helpful, did you meantime += 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
add a comment |
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");
}
}
}
javascript
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
javascript
asked Nov 21 '18 at 16:22
inzam zaman
63
63
times
isundefined
whiletime
is declared but not defined too.time + 5000;
isn't helpful, did you meantime += 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
add a comment |
times
isundefined
whiletime
is declared but not defined too.time + 5000;
isn't helpful, did you meantime += 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
add a comment |
3 Answers
3
active
oldest
votes
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!
}
}
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
add a comment |
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
.
add a comment |
use time+=5000;
instead time+5000;
Still won't work becausetime
is not initialized.
– Scott Marcus
Nov 21 '18 at 16:29
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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!
}
}
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
add a comment |
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!
}
}
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
add a comment |
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!
}
}
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!
}
}
edited Nov 21 '18 at 16:51
answered Nov 21 '18 at 16:25
Scott Marcus
38.1k51936
38.1k51936
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
add a comment |
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
add a comment |
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
.
add a comment |
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
.
add a comment |
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
.
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
.
edited Nov 21 '18 at 16:46
answered Nov 21 '18 at 16:26
hev1
5,5633527
5,5633527
add a comment |
add a comment |
use time+=5000;
instead time+5000;
Still won't work becausetime
is not initialized.
– Scott Marcus
Nov 21 '18 at 16:29
add a comment |
use time+=5000;
instead time+5000;
Still won't work becausetime
is not initialized.
– Scott Marcus
Nov 21 '18 at 16:29
add a comment |
use time+=5000;
instead time+5000;
use time+=5000;
instead time+5000;
edited Nov 21 '18 at 16:47
pushkin
3,964112651
3,964112651
answered Nov 21 '18 at 16:25
karthikdivi
1,25911430
1,25911430
Still won't work becausetime
is not initialized.
– Scott Marcus
Nov 21 '18 at 16:29
add a comment |
Still won't work becausetime
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
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
times
isundefined
whiletime
is declared but not defined too.time + 5000;
isn't helpful, did you meantime += 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