Курс языка программирования 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 • Български • Русский • Українська