Hola antonio. Lo que pasaste son dos codigos diferentes. En el primero que no te funciona resulta ser que estas declarando el valor de posicion como 0 (CERO) dentro del for. y luego en la condicion estas diciendo que si posicion (QUE VALE CERO) es menor que (CERO) pues listaIngredientes esta vacia por el momento, es decir que listaIngredientes.length es (CERO), entonces : 0<0 es falso y directamente cierra el ciclo for y concluye ahi tu programa.
en cambio compara con el segundo codigo y veras la diferencia..... me diras que ocurre lo mismo pues siii, pero al tener la variable encontrado declarada como false se ejecutara el if ya que la condicion se cumple y se carga el primer ingrediente....
Espero haber sido claro y ayudarte en tu duda. Si es asi marca la respuesta como solucionado. GRACIAS Y SALUDOS:
A seguir programando!!!!