Курс по Raku / Основи / Условни проверки / Сравняване на стрингове

Тест 2 — условието в if*

Коригирайте програмата и отговорете на въпроса.

. my $password = prompt ‘Въведете вашата парола: ‘;
.  
eq = if $password ␣␣ ‘*&(#&$#Y’ {
.     say ‘Вярно’;
. }
. else {
.     say ‘Невярно’;
. }

С = в теста, какво прави тази програма?

Винаги отпечатва ‘Вярно’ Вашият отговор:  (: Винаги отпечатва ‘Вярно’, Винаги отпечатва ‘Невярно’, Отпечатва ‘Вярно’ за правилни пароли и ‘Невярно’ за неправилни, Отпечатва ‘Невярно’ за правилни пароли и ‘Вярно’ за неправилни :)
Програмата винаги отпечатва ‘Вярно’, защото $password = '*&(#&$#Y' е присвояване, което задава новата стойност на променливата $password. Тъй като стойността не е нула или празен низ, тя се счита за True. Паролата, която потребителят въвежда, никога не се проверява в този случай.

Ако въведете ==, тогава програмата ще се провали, тъй като ще се опита да конвертира низовете (потребителската парола и правилната парола) в числа и ще се провали.

Навигация по курса

Условни проверки / Сравняване на числа   |   Условни проверки / Теренарен оператор


💪 Or jump directly to the exercises to this section.

Тази страница е автоматично преведена с ChatGPT 4.0. Оригинален текст на английски

Преводи на тази страница: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська