Курс языка программирования Raku / Основы / Проверка условий / Сравнение строк
Тест 2: Условие в if
Исправьте программу и ответьте на вопросы.
. | my $password = prompt 'Enter your password: '; |
. | |
eq = | if $password ␣␣ '*&(#&$#Y' { |
. | say 'Correct'; |
. | } |
. | else { |
. | say 'Incorrect'; |
. | } |
Что программа делает со знаком =
в тесте?
Всегда выводит ‘Correct’ | Ваш ответ: (: Всегда выводит ‘Correct’, Всегда выводит ’Incorrect’, Выводит ’Correct’ для правильных паролей и ‘Incorrect’ для неправильных, Выводит ’Incorrect’ для правильных паролей ’Correct’ для неправильных :) |
Программа всегда выводит ’Correct’, потому что
Если вы напишите
$password = '*&(#&$#Y'
— это присвоение, устанавливающее новое значение в переменную $password
. Так как значение не является нулем или пустой строкой, оно считается как True
. Пароль, введенный пользователем, в этом случае никогда не проверяется.Если вы напишите
==
, то программа не будет работать, так как она попытается привести строки (пароль пользователя и правильный пароль) к числам и потерпит неудачу.Навигация по курсу
← Проверка условий / Сравнение чисел | Проверка условий / Тернарный оператор →
💪 Or jump directly to the exercises to this section.
Эта страница переведена с английского человеком. Оригинальный текст на английском языке. О переводе.
Переводы этой страницы: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська