Help me work this code

Asked

Viewed 59 times

-4

How do I keep the code running the same way by taking out "break" after "if"?: var numeroTentativa = 1;

     while (numeroTentativa > 0) {

        var chute = parseInt(prompt('Digite o número pensado:'));
        var numeroPensado = Math.round(Math.random()*10);

        if (chute === numeroPensado) {
            alert('Parábens, eu pensei exatamento no número ' + numeroPensado + '.');
            break;
        } else if (numeroPensado < chute){
            alert('Você digitou um número maior em relação ao que eu pensei, continue tentando.');
        } else if (numeroPensado > chute) {
            alert ('Você digitou um número menor em relação ao que eu pensei, continue tentando.');
        } 

        numeroTentativa++;

        alert('Eu pensei no número: ' + numeroPensado);

    }
  • 2

    It depends! What should the code do? And what is it doing now? What is the real problem with owning the break which justifies you wanting to remove it?

2 answers

0


A very simple way:

Creates a boolean variable with the value as true, it will be used to validate whether to continue running the loop instead of using the break you just change the variable to false, so the loop will be interrupted in the next iteration. To interrupt the rest of the code following the string if else, just group everything within the one else

var bool = true;

while (numeroTentativa > 0 || bool) {
  var chute = parseInt(prompt('Digite o número pensado:'));
  var numeroPensado = Math.round(Math.random() * 10);

  if (chute === numeroPensado) {
    alert('Parábens, eu pensei exatamento no número ' + numeroPensado + '.');
    bool = false;
  } else {
    if (numeroPensado < chute) {
      alert('Você digitou um número maior em relação ao que eu pensei, continue tentando.');
    } else if (numeroPensado > chute) {
      alert('Você digitou um número menor em relação ao que eu pensei, continue tentando.');
    }

    numeroTentativa++;

    alert('Eu pensei no número: ' + numeroPensado);
  }
}

This is a solution, but it is a solution to a problem that does not exist, after all there is nothing wrong using the command break

  • Thanks, it worked out!!

0

How are 3 possible conditions:

  1. Equal number,
  2. larger number, and
  3. smaller number

You could use just one if (equal), else if (major) and else (minor). This is because if none of the first two conditions are met, it can only be the third (else).

And you have to make one break after the alert using the same condition proposed in the Costamilam response (the variable bool), to break the loop while if you have hit the number, otherwise it will turn into an infinite looping:

var bool;
var numeroTentativa = 0;

while(numeroTentativa > 0 || !bool){
   var chute = parseInt(prompt('Digite o número pensado:'));
   var numeroPensado = Math.round(Math.random() * 10);

   if(chute === numeroPensado){
      alert('Parábens, eu pensei exatamento no número ' + numeroPensado + '.');
      bool = true;
   }else if(numeroPensado < chute){
      alert('Você digitou um número maior em relação ao que eu pensei, continue tentando.');
   }else{
      alert('Você digitou um número menor em relação ao que eu pensei, continue tentando.');
   }

   numeroTentativa++;

   alert('Eu pensei no número: ' + numeroPensado);
   if(bool) break;
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.