|
|
- ## 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
- ```
|