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

No hay Ingredientes Repetidos - Hector Mendoza

Hola!

tengo una duda referente a porque mi programa se cicla con el siguiente código.

<meta charset="utf-8">
<h1>Recetas de Armando</h1>

<script>

    var ingredientes = [];
    var cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
    var contador = 1;
    var existe = false;

    while( contador <= cantidad) {
        var ingrediente = prompt("Informe el ingrediente " + contador);

        for(var posicion = 0; posicion<ingredientes.length; posicion++){
            if (ingrediente==ingredientes[posicion]){
                existe = true;
                alert("repetido " + ingrediente);
                break;
            }
        }
        if (existe == false){
            ingredientes.push(ingrediente);
            contador++;
        }

    }

    console.log(ingredientes);

</script>

pero si lo pongo de la siguiente manera, se ejecuta correctamente.

<meta charset="utf-8">
<h1>Recetas de Armando</h1>

<script>

    var ingredientes = [];
    var cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
    var contador = 1;
    var existe = false;

    while( contador <= cantidad) {
        var ingrediente = prompt("Informe el ingrediente " + contador);
        existe = false
        for(var posicion = 0; posicion<ingredientes.length; posicion++){
            if (ingrediente==ingredientes[posicion]){
                existe = true;
                alert("repetido " + ingrediente);
                break;
            }
        }
        if (existe == false){
            ingredientes.push(ingrediente);
            contador++;
        }

    }

    console.log(ingredientes);

</script>

al parecer la variable existe, se pierde su valor asignado de false y se cicla, por lo que tengo que volver a asignarlo en el ciclo while.

por lo demas todo bien, me gusto mucho el curso.

saludos.

1 respuesta

Hola Héctor,

Dentro del loop while usted necesita declarar que la variable existe es falsa desde el principio para siempre que el while recomenzar ella estar como false. Cuando el usuario del programa inserte un nuevo ingrediente, la verificación del primer if será hecha y si la condición no sucede, la variable existe continúa false y usted continúa insertando los ingredientes.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios