Javascript conditional not alerting when its condition is reached

Viewed 48

I made a for loop in game() function to have the user input rock, paper, or scissors. If the game is played 5 times the loop is supposed to alert "You played 5 games already" but it doesn't alert when the condition is met. I tried adding return before alert, I also tried using >= instead of === but it doesn't work.

function game(){
    for(let i = 0; i < 5; i++){
        if(i < 5){
            let getSelect = prompt("Choose Rock, Paper, or Scissors", "");
            let getWinOrLose = alert(playRound(getSelect, computerPlay()));
                if( i === 5 ){
                    alert("You played 5 games already");
                }
        }
    }
}

console.log(game());

Check the code above ^

And here is the fiddle: https://jsfiddle.net/JaredDev/cbmLetuz/2/

5 Answers

It won´t show the alert because condition i===5 is never reached since it is guarded by i<5. Plus the loop never reaches value of 5.

Try for (let i = 0; i <= 5; i++) { the loop will run until i is less or equal to 5 and should trigger the i === 5 condition.

Just be aware that the loop will run 6 times for the i values 0, 1, 2, 3, 4, 5 so you may want to consider tweaking the numbers to your specs.

It is not i===5. Since, It is i < 5, The condition satisfies during i===4 itself. So change i===5 to i===4. As like the code given below,

function game(){
    for(let i = 0; i < 5; i++){
        if(i < 5){
            let getSelect = prompt("Choose Rock, Paper, or Scissors", "");
            let getWinOrLose = alert(playRound(getSelect, computerPlay()));
                if( i === 4 ){
                    alert("You played 5 games already");
                }
        }
    }
}

console.log(game());

I think what you are looking for is below:

 if( i === 4 ){
    alert("You played 5 games already");
 }

For loop increment is limited to <5 means 4 only. and condition says i===5 means I can never be 5 in above case

Related