Cursus Raku / Essentiëlen / 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 $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.

Cursusnavigatie

Voorwaardelijke controles / Getallen vergelijken   |   Voorwaardelijke controles / Ternaire operator


💪 Or jump directly to the exercises to this section.

Deze pagina is automatisch vertaald met ChatGPT 4o. Originele Engelse tekst.

Vertalingen van deze pagina: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська