Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

duda numero de inrtentos

hola!! por que cuando ejecuto el codigo en el navegador, cuando no acierto en ninguno, me imprime que erre en el intento 4??????.

<meta charset="UTF-8">

<script>
    function saltarLinea() {
        document.write("<br>");
        document.write("<br>");
    }

    function imprimir (frase) {
        document.write (frase); 
        saltarLinea ();
    }

    var numeroPensado = Math.round(Math.random()*10);
    var intentos = 3
    var contador = 1

    while (contador <=intentos) {
      var numeroLanzado= parseInt(prompt("ingrese un numero entre 0-10"));


    if (numeroPensado == numeroLanzado){
        alert("Usted acertó, en el intento " + contador ); 
        break; //este loop funciona con una tijera o un freno y busca en el while para cortarlo
    }
      else {
        alert("usted erró " + "en el intento " + contador);
      }   
    contador++;
    }

    if (numeroPensado == numeroLanzado){
        imprimir("Usted acertó en el intento " + contador + " el numero pensado era  " +  numeroPensado); 
    }

    else {
        imprimir("Usted erró en el intento " + contador + " el numero pensado era " + numeroPensado);
    }


        imprimir("fin.");
1 respuesta

Cuando haces la verificación lógica "if (numeroPensado == numeroLanzado)" la variable contador ya se encuentra en 4 debido a que esta verificación la realiza hasta que sale del ciclo while y el ciclo termina cuando contador llega al numero 4. Te dejo el codigo corregido con la solucion y algunos comentarios que te pueden servir para entender la misma

<meta charset="UTF-8">

<script>
    function saltarLinea() {
        document.write("<br>");
        document.write("<br>");
    }

    function imprimir (frase) {
        document.write (frase); 
        saltarLinea ();
    }

    var numeroPensado = Math.round(Math.random()*10);
    var intentos = 3;
    var contador = 1;
    console.log(numeroPensado);
    while (contador <=intentos) {


    if (numeroPensado == numeroLanzado){
        alert("Usted acertó, en el intento " + contador ); 
        break; //este loop funciona con una tijera o un freno y busca en el while para cortarlo
    }
      else {
        var numeroLanzado= parseInt(prompt("ingrese un numero entre 0-10"));

        alert("usted erró " + "en el intento " + contador);
      }   
    contador++;// tu contador lo aumentas aqui
    console.log(contador); // recomiendo usar este tipo de impresiones en consola para que puedas verificar el comportamiento de tus variables
    //cuando acabes tu programa o ya funcione de la forma deseada simplemente las borras
    }

    if (numeroPensado == numeroLanzado){
        imprimir("Usted acertó en el intento " + contador + " el numero pensado era  " +  numeroPensado); 
        //aqui el contador se encuentra en 4
    }

    else {
        contador--;
        imprimir("Usted erró en el intento " + contador + " el numero pensado era " + numeroPensado); 
        //al finalizar el while el contador ya esta en 4 y ese es el numero que recibe en esta instruccion para solucionarlo simplementa resta 1 al contador

    }


        imprimir("fin.");
    </script>