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é
Se scrivi
$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.