El objetivo del Fizz-Buzz es que el script escriba una lista del 1 al 100, pero cuando el numero es multiplo de 3 imprima "Fizz" y si el numero es multiplo de 5 imprima "Buzz", y si es multiplo de los dos imprima "Fizz Buzz".
Lo que me gusta de este script es que es modificable, en donde esta:
def múltiplos = [Fizz:3,Buzz:5]
podemos agregar mas múltiplos por ejemplo si queremos que los múltiplos de 7 escriba "Wuzz" solo tenemos que agregar:
def multiplos = [Fizz:3,Buzz:5,Wuzz:7]
Esto gracias al poder de las closures y de mapas.
def validacion = { numero ->
resultado = ""
def multiplos = [Fizz:3,Buzz:5]
multiplos.each{ multiplo ->
if(numero%multiplo.value == 0){
resultado += multiplo.key
}
}
println resultado ? "$resultado" : "$numero"
}
def iterador = { n, closure ->
for(int i=1; i<=n;i++){
closure(i)
}
}
iterador(100,validacion)
No hay comentarios:
Publicar un comentario