La verdad es que no acabo de comprender muy bien la dinámica del asunto.
Según veo el script está devolviendo lo que se le está pidiendo. Fíjate en lo que dice si le ponemos un chivato
Código:
if(Cantidades[(a+1)] > numero && numero > Cantidades[a]){
alert(Cantidades[(a+1)] +" > " + numero + " " + (Cantidades[(a+1)] > numero) + " ; " + numero + " > " + Cantidades[a] + " " + (numero > Cantidades[a]))
//Multiplico
alert(numero * Valores[a])
break
}
Las condiciones se está cumpliendo y entra a ejecutar la multiplicación.
Cuéntanos un poco mejor lo que pretendes y danos algún ejemplo de lo que debería devolver si se introduce 1, si se introduce 4, si se introducen 31 ....
un saludo