Hola. Me pasa lo mismo que a Frank. No entiendo la lógica de cómo en este caso el ciclo "for" permite identificar que el ingrediente no se haya repetido. De acuerdo con la lectura que yo hago, con el código que comparte Frank (que es el mismo que trae el curso en el aula 5 del curso "Lógica de programación: conceptos primordiales"), según como yo lo veo, con las sentencias que hay dentro del ciclo "for" lo que se va a comparar es que el ingrediente que se está ingresando en la iteración sea igual a él mismo. ¿Por qué lo veo así? Porque creo que ingredientes[posicion] trata de hacer referencia al ingrediente que el usuario acabó de ingresar y que unas líneas más adelante en el código se guardaría dentro del array con la sentencia ingredientes.push(ingrediente);. Sin embargo, por lo que yo entiendo, eso no sucederá, pues en el ciclo "for" se está indicando que si esos dos valores son iguales (es decir, ingredientes[posicion] y el ingrediente que acaba de ingresar el usuario son iguales), entonces la variable "existe" pasa a ser verdadera y se rompe el ciclo.
Si, quizás, estoy equivocado e ingredientes[posicion] hace referencia al valor ingresado en el array en la iteración anterior, aun así creo que el código no permite impedir que se repita algún número, pues el programa compararía solo el valor ingresado en una iteración con el valor ingresado en la iteración anterior, no con todo el contenido del array.
Agradecería mucho si nos dieran una explicación más extensiva de este asunto.
Muchas gracias de antemano.