2017-05-11 5 views
2

Ich möchte die Frage 4 mal stellen, und warnt, wenn der Benutzer unter, über, nahe oder rechts und Schleife zu brechen ist. Wo ist meine Logik ausgeschaltet? Erkennt alles außer dem letzten, wenn?Wo ist meine Logik falsch?

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; 
    } 
} 

Antwort

1

Es gibt zwei Fehler:

Zuerst Sie haben (bevor die Frage bearbeitet wurde):

}else if(myNumber < 8 && myNumber > 20) { 

Richtig ist:

}else if(myNumber > 8 && myNumber < 20) { 

(I invertiert < und >)

In der Tat sollten Sie überprüfen, ob die myNumberzwischen 9 und 19.

Beachten Sie, dass Ihre ursprüngliche Aussage immer falsch bewertet werden würde, ist.


Dann haben Sie die richtige Zahl „12“ überprüfen vor Sie überprüfen, ob der Benutzer „näher zu kommen“.

Das Ganze wird:

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'); 
    } 
} 
+0

danke das hilft. – Potluck

+0

Ich habe ein paar andere Dinge geändert – Potluck

+0

Es ist dein Code, du kannst damit spielen. :-) – Paolo