Ruby fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.3 KiB

3 Salasanakysely

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