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.

52 lines
1.3 KiB

4 years ago
  1. ## 3 Salasanakysely
  2. **Tehtävä:**
  3. 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.".
  4. Toimiessaan oikein ohjelma tulostaa seuraavaa:
  5. Example output:
  6. ```
  7. Anna nimi:
  8. Erkki
  9. Anna salasana:
  10. hahaa!
  11. Et ole Erkki.
  12. ```
  13. **Vastaus**
  14. ```
  15. #!/usr/bin/env ruby
  16. # coding: utf-8
  17. def tarkistaSyote(kysymys, tyyppi, strip=false)
  18. begin
  19. print kysymys
  20. if strip
  21. syote = eval(tyyppi + "(gets.chomp).strip")
  22. else
  23. syote = eval(tyyppi + "(gets.chomp)")
  24. end
  25. rescue ArgumentError
  26. warn "Syöttämäsi valinta ei ole kelvollinen"
  27. retry
  28. end
  29. return syote
  30. end
  31. nimi = tarkistaSyote("Anna nimi: \n", "String")
  32. case nimi when "Erkki"
  33. salasana = tarkistaSyote("Anna salasana: \n", "String")
  34. case salasana when "haukionkala"
  35. puts "Hei #{nimi}!"
  36. else
  37. puts "Et ole #{nimi}."
  38. end
  39. else
  40. puts "En tunne sinua."
  41. end
  42. ```