Back
Close

Ruby Introduction (Dutch)

PeterDR
3,001 views
Previous: Hash Next: The End

Iterators

Een Array of een Hash kan zoals gezegd meerdere waardes bevatten. Een iterator maakt het mogelijk om deze waardes een voor een te doorlopen. Er zijn veel verschillende soorten iterators, laten we een aantal varianten doorlopen.

while

stock = 10
while stock > 0
puts "Voorraad iPhone X: #{stock}"
stock = stock - 1
end
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Een while loop blijft net zolang doorgaan tot er aan de voorwaarde na het woord while, in dit geval stock > 0 is voldaan. Als je op "Run" klikt zie je dat steeds weer de voorraad wordt uitgeprint tot het punt dat de voorraad nul is. stock = stock - 1 zorgt er voor dat bij er steeds een telefoon van de voorraad af gaat.

until

stock = 0
until stock == 10
puts "Voorraad iPhone X: #{stock}"
stock = stock + 1
end
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Een until loop is vergelijkbaar met de while loop, alleen werkt het de andere kant op. Waar de while loop van net aan het aftellen was, telt de until loop op tot aan de conditie stock == 10 is voldaan.

each

Een each iterator kan gebruikt worden om waardes in een Array of Hash een voor een af te gaan en te bewerken.

phones = ["iPhone X", "Galaxy S9", "Wiko Harry"]
phones.each do |phone|
if phone == "iPhone X"
puts "De iPhone X is top!"
else
puts "De #{phone} is redelijk."
end
end
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

In bovenstaande voorbeeld wordt voor elke waarde uit Array phones een zin getoond met betrekking tot de telefoon. Tussen |..| staat de naam van de waarde die binnen de iterator gebruikt kan worden.

Een each iterator voor een hash ziet er bijna hetzelfde uit, maar omdat een Hash uit een key en een value bestaat, geef je 2 waardes mee:

phones_in_stock = {
"iPhone X" => 10,
"Galaxy S9" => 5,
"Xperia Z" => 2
}
phones_in_stock.each do |key, value|
puts "Voorraad #{key}: #{value}"
end
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Het is ook mogelijk om zowel een Array en een Hash te combineren.

phones = [
{
"brand" => "Apple",
"name" => "iPhone X",
"stock" => 5
},
{
"brand" => "Samsung",
"name" => "Galaxy S9",
"stock" => 10
}
]
puts "Telefoons:"
phones.each do |phone|
puts "========="
puts phone["brand"]
puts phone["name"]
puts phone["stock"]
end
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

De while- en until iterators komen in de praktijk maar zelden voor. De each iterator daarentegen gaan we geregeld tegen komen op het moment dat we aan de slag gaan met het maken van onze eerste website.

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants