Corso di Raku / Fondamenti / Fondamenti del controllo di flusso / Controlli condizionali / Confronto delle stringhe

Quiz 2 — la condizione in if*

Correggi il programma e rispondi alla domanda.

.my $password = prompt 'Inserisci la tua password: ';
.
eq =if $password ␣␣ '*&(#&$#Y' {
.    say 'Corretto';
.}
.else {
.    say 'Errato';
.}

Con il = nel test, cosa fa questo programma?

Stampa sempre ‘Corretto’La tua risposta:  (: Stampa sempre ‘Corretto’, Stampa sempre ‘Errato’, Stampa ‘Corretto’ per password corrette e ‘Errato’ per password errate, Stampa ‘Errato’ per password corrette e ‘Corretto’ per password errate :)
Il programma stampa sempre ‘Corretto’ perché $password = ’*&(#&$#Y’ è un’assegnazione che imposta il nuovo valore della variabile $password. Poiché il valore non è né zero né una stringa vuota, è considerato True. La password inserita dall’utente non viene mai controllata in questo caso.

Se scrivi ==, allora il programma si interromperà poiché tenta di convertire le stringhe (la password dell’utente e la password corretta) in numeri e fallisce.

Quiz 1 — Confronto delle stringhe   |   Operatore ternario