While i Until
while
: mentre
until
: fins que
00 Concepte
Ens permet definir cicles el final de qual no està definit per un nombre de repeticions sinó per l’avaluació d’una expressió que torna verdader o fals.
A partir de l’expressió while
es va a avaluar true
or false
.
while expresion
# Instruccions
end
1. Ordre
Li diguem que partisca des de 0
i incremente en 1
la iteració fins que arribe a 10
.
i = 0
while i < 10
# Instrucciones
put i
i +=1
end
Output
0
1
2
3
4
5
6
7
8
9
2. While
Programa que reprodueix les tres primeres cançons, però pregunta si es vol para o no. Cal posar-li un nombre per tal que seguisca reproduint. En cas de voler parar cal posar 0
.
playlist = ["Primera cançò", "Segona cançò", "Tercera cançò"]
playing = true
index_song = 0
# Si hi ha cançons reproduint en la llista de reproducció
# i està reproduint (playing es verdader)
# llavors ha d'executar les cançons.
while (index_song < playlist.length) && playing
puts "Reproduint #{playlist[index_song]}"
index_song += 1
# si ens torna 0, fem stop, si no seguim reproduint
print "Col·loca 0 per a detenir la reproducció: "
resposta = gets().chomp.to_i
playing = resposta !=0
end
3. Until
Until es a While el que less és a if.
numero_magico = 20
print "Adivina el número mágico: "
numero_usuario = gets().chomp.to_i
while numero_usuario != numero_magico
print "Incorrecto. Adivina otra vez: "
numero_usuario = gets().chomp.to_i
end
puts "Felicidades. ¡Adivinaste!"
Output
Adivina el número mágico: 3
Incorrecto. Adivina otra vez: 4
Incorrecto. Adivina otra vez: 5
Incorrecto. Adivina otra vez: 7
Incorrecto. Adivina otra vez: 9
Incorrecto. Adivina otra vez: 22
Incorrecto. Adivina otra vez: 3
Incorrecto. Adivina otra vez: 20
Felicidades. ¡Adivinaste!
Ens fixem en la sentència while numero_usuario != numero_magico
la qual evalúa fins que el valor done true
.
Ahora cambiamos while
por until
la cual evalúa el valor hasta que sea false
.
Concretament el canvi serà aquest:
while numero_usuario != numero_magico
# canviem per
until numero_usuario == numero_magico
Així obtindrem el mateix resultat.
Adivina el número mágico: 5
Incorrecto. Adivina otra vez: 3
Incorrecto. Adivina otra vez: 6
Incorrecto. Adivina otra vez: 7
Incorrecto. Adivina otra vez: 2
Incorrecto. Adivina otra vez: 34
Incorrecto. Adivina otra vez: 55
Incorrecto. Adivina otra vez: 20
Felicidades. ¡Adivinaste!