Tehtävä:
Luvun kolmannessa tehtävässä toteutetaan nimeä ja salasanaa pyytävä valintarakenne. Ensin ohjelma pyytää nimeä muodossa "Anna nimi: ". Jos käyttäjä antaa nimen "Erkki", pyydetään lisäksi salasana muodossa "Anna salasana: ". Jos salasana on "haukionkala", tervehditään käyttäjää tulosteella "Hei Erkki!". Jos käyttäjä antaa väärän nimen, tulostetaan "En tunne sinua.", ja jos salasana on väärin, "Et ole Erkki.".
Toimiessaan oikein ohjelma tulostaa seuraavaa:
Example output:
Anna nimi:
Erkki
Anna salasana:
hahaa!
Et ole Erkki.
Vastaus
#!/usr/bin/env ruby
# coding: utf-8
def tarkistaSyote(kysymys, tyyppi, strip=false)
begin
print kysymys
if strip
syote = eval(tyyppi + "(gets.chomp).strip")
else
syote = eval(tyyppi + "(gets.chomp)")
end
rescue ArgumentError
warn "Syöttämäsi valinta ei ole kelvollinen"
retry
end
return syote
end
nimi = tarkistaSyote("Anna nimi: \n", "String")
case nimi when "Erkki"
salasana = tarkistaSyote("Anna salasana: \n", "String")
case salasana when "haukionkala"
puts "Hei #{nimi}!"
else
puts "Et ole #{nimi}."
end
else
puts "En tunne sinua."
end