Cursus Raku / Essentiëlen / Basis van besturingsstructuren / Voorwaardelijke controles / Strings vergelijken
Quiz 2 — de voorwaarde in
if*
Corrigeer het programma en beantwoord de vraag.
| . | my $password = prompt 'Voer je wachtwoord in: '; |
| . | |
| eq = | if $password ␣␣ '*&(#&$#Y' { |
| . | say 'Correct'; |
| . | } |
| . | else { |
| . | say 'Incorrect'; |
| . | } |
Wat doet dit programma met de = in de test?
| Print altijd ‘Correct’ | Jouw antwoord: (: Print altijd ‘Correct’, Print altijd ‘Incorrect’, Print ‘Correct’ voor correcte wachtwoorden en ‘Incorrect’ voor onjuiste wachtwoorden, Print ‘Incorrect’ voor correcte wachtwoorden en ‘Correct’ voor onjuiste wachtwoorden :) |
Het programma print altijd ‘Correct’ omdat
Als je
$password =
’*&(#&$#Y’ een toewijzing is die de nieuwe waarde van de
$password variabele instelt. Aangezien de waarde noch nul
noch een lege string is, wordt deze als True beschouwd. Het
wachtwoord dat de gebruiker invoert, wordt in dit geval nooit
gecontroleerd.Als je
== typt, zal het programma
breken omdat het probeert de strings (het gebruikerswachtwoord en het
correcte wachtwoord) naar nummers te converteren en faalt.