Curso de Raku / Esenciales / Fundamentos del control de flujo / Controles condicionales / Comparación de cadenas
Quiz 2 — la condición en
if*
Corrige el programa y responde la pregunta.
| . | my $password = prompt 'Introduce tu contraseña: '; |
| . | |
| eq = | if $password ␣␣ '*&(#&$#Y' { |
| . | say 'Correcto'; |
| . | } |
| . | else { |
| . | say 'Incorrecto'; |
| . | } |
Con el = en la prueba, ¿qué hace este programa?
| Siempre imprime ‘Correcto’ | Tu respuesta: (: Siempre imprime ‘Correcto’, Siempre imprime ‘Incorrecto’, Imprime ‘Correcto’ para contraseñas correctas e ‘Incorrecto’ para incorrectas, Imprime ‘Incorrecto’ para contraseñas correctas y ‘Correcto’ para incorrectas :) |
El programa siempre imprime ‘Correcto’ porque
Si escribes
$password =
’*&(#&$#Y’ es una asignación que establece el nuevo valor
de la variable $password. Como el valor no es ni cero ni
una cadena vacía, se considera True. La contraseña que el
usuario introduce nunca se verifica en este caso.Si escribes
==, entonces el programa fallará al intentar convertir las
cadenas (la contraseña del usuario y la contraseña correcta) a números y
fallará.