Kurso de Raku / Esencoj / Kondiĉaj kontroloj / Komparante stringojn

Kvizo 2 — la kondiĉo en if

Korektu la programon kaj respondu la demandon.

. my $password = prompt ‘Enigu vian pasvorton: ‘;
.  
eq = if $password ␣␣ ‘*&(#&$#Y’ {
.     say ‘Ĝusta’;
. }
. else {
.     say ‘Malĝusta’;
. }

Kun la = en la testo, kion faras ĉi tiu programo?

Ĉiam presas ‘Ĝusta’ Via respondo:  (: Ĉiam presas ‘Ĝusta’, Ĉiam presas ‘Malĝusta’, Presas ‘Ĝusta’ por ĝustaj pasvortoj kaj ‘Malĝusta’ por malĝustaj, Presas ‘Malĝusta’ por ĝustaj pasvortoj kaj ‘Ĝusta’ por malĝustaj :)
La programo ĉiam presas 'Ĝusta' ĉar $password = '*&(#&$#Y' estas asigno kiu agordas la novan valoron de la variablo $password. Ĉar la valoro ne estas nulo nek malplena ŝnuro, ĝi estas konsiderata Vera. La pasvorto, kiun la uzanto enigas, neniam estas kontrolita en ĉi tiu kazo.

Se vi tajpas ==, tiam la programo rompiĝos ĉar ĝi provas konverti la ŝnurojn (la uzanta pasvorto kaj la ĝusta pasvorto) al nombroj kaj malsukcesas.

Kurso navigado

Kondiĉaj kontroloj / Komparante nombrojn   |   Kondiĉaj kontroloj / Ternara operatoro


💪 Or jump directly to the exercises to this section.

Ĉi tiu paĝo estas aŭtomate tradukita per ChatGPT 4o. Originala angla teksto

Tradukoj de ĉi tiu paĝo: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська