Reputation: 35
I want to ask the question 4 times, and alert if they user is under, over, close, or right and break loop. Where is my logic off? Recognizes everything but the last else if?
for(var i = 0; i < 4; i++){
var myNumber = prompt('guess my number?');
if(myNumber > 50) {
alert('to high');
}else if(myNumber <= 8) {
alert('too low');
}else if(myNumber > 8 && myNumber < 20) {
alert('youre getting closer');
}else if (myNumber === 12) {
alert('yay');
break;
}
}
Upvotes: 2
Views: 33
Reputation: 15827
There are two mistakes:
First, you have (before the question was edited):
}else if(myNumber < 8 && myNumber > 20) {
Correct is:
}else if(myNumber > 8 && myNumber < 20 ) {
(I inverted <
and >
)
In fact you want to check if the myNumber
is between 9 and 19.
Note that your original statement would always be evaluated false.
Then you have to check the correct number "12" before you check if the user is "getting closer".
The whole thing becomes:
for(var i = 1; i <= 4; i++){
var myNumber = prompt('guess my number?');
if (myNumber === 12) { // <-- let's check the right number first
alert('yay');
break;
} else if(myNumber > 50) {
alert('to high');
}else if(myNumber < 3) {
alert('too low');
}else if(myNumber > 8 && myNumber < 20) { // <-- fixed here
alert('youre getting closer');
}
}
Upvotes: 2