Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] For en lugar de While no aplica?

Hola, me parece que en este caso no se puede usar el For en lugar del While porque el contador debe estar dentro del último if para que se ingresen la cantidad de ingredientes solicitados. A alguien le resultó el código usando For??

<meta charset="UTF-8">



<h1>Recetas de Armando </h1>

<script>

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

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



</script>
2 respuestas

Hola no se si te sirva de ejemplo mi codigo, yo ocupe el while y el for sirven para lo mismo, pero la sintaxis es diferente.

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

    while (contador <= cantidad) {
        var ingrediente = prompt("Ingrese el ingrediente " + contador);
        var encontrado = false;

        for (var posicion = 0; posicion < ingredientes.length; posicion++) {
            if (ingrediente == ingredientes[posicion]) {
                encontrado = true;
                alert("El ingrediente  " + ingrediente + " ya ha sido ingresado, favor de agregar uno diferente");
                break;
            }
        }
        if (encontrado == false) {
            ingredientes.push(ingrediente);
            contador++;
        }
    }

    document.write("Igrediente de la receta: " +ingredientes);

</script>

Hola, Manuel. Buen código, mi duda iba a si tratas de cambiar el While por un For verás que el algoritmo también funciona peeero en este caso si ingresas un repetido por decir en el ingrediente 2, ya no te pedirá que vuelvas a ingresar el ingrediente 2 correcto, si no pasará al ingrediente 3. Esto se debe al lugar en el que se encuentra el contador++. Cuando se usa While puedes colocar el contador dentro de la última condicional, mientras que si usas el For no tienes esa opción. Con este ejemplo uno se puede dar cuenta que hay ocasiones en las que conviene usar el For y otras el While.