Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let a = prompt('який № поверху?')
- if (a < 1 || a > 9) {
- console.log('невірний поверх!')
- } else if (a == 1 || a == 2 || a == 3 || a == 7 || a == 8 || a == 9) { // цю умову можна записати лаконічно та ізящно,
- // поміркуйте самостійно. Підказка якщо не вийде нижче за #1.
- console.log('OK!');
- } else {
- if (a == 4 || a == 5 || a == 6) { // поміркуйте, які значення можуть попасти до цього міста програми, враховуючи
- // дві попередні умови та команди else - підказка нижче за #2
- console.log('ввести пароль')
- let pass = prompt(' ввести пароль') // тут повертається строка
- if (pass != 1337) {
- console.log('не вірний пароль!')
- } else if (pass == 1337) { // тут використовуєте "не строге" порівняння з числом, якщо написати так pass === 1337,
- // то не спрацює. А як можна зробити щоб спрацювало з перевіркою ідентичності === ?
- // Є декілька способів у підказці #3
- console.log('OK!!')
- }
- }
- }
- // варто використовувати фігурні дужки завжди, навіть якщо одна команда в блокові перевірці чи циклу.
- // Гарного коду в новому році!)
- /* #1
- Перелічувати всі поверх таким чином це як намагатися здертися на Бурдж Халіфа пішки - скористаймося.. ліфтом.)
- якщо брати загальний випадок для умови, що перевіряє чи поверх належить до двох діапазонів : 1-3 чи 7-9, то умову можна записати так:
- if ( (a >= 1 && a <= 3) || (a >= 7 && a <= 9)
- Але можна дещо спростити логіку використав те, що у попередній умові if (a < 1 || a > 9) ми вже перевіряємо значення і після неї до else попадуть лише валідні поверхи (від 1 до 9 ) тому лишиться перевірити лише такі умови:
- if (a <= 3 || a >= 7)
- #2
- елсе - значить інакше, тобто доберуться до тієї перевірки лише значення , що не підійшли під дві попередні умови. ТОбто не менші за 1 але й не більше за 9, а ще більші за 3 але й менші за 7.. Тобто можна код ще дещо спростити.
- #3
- Якщо перевіряти ідентичність ( === ) строки зі строкою, то можна написати так
- if (pass === '1337')
- Якщо прийняти не стоку а число, це можна зробити так
- let pass = + prompt(' ввести пароль') або let pass = parseInt(prompt(' ввести пароль'))
- тоді можна звіряти ідентичність з числом
- if (pass === 1337)
- Перевірка рівності за допомогою == поверне тру і для строки і для числа, тобто вона намагається привести тип до того, що задовольняє умові. Це може викликати неоднозначність, а в програмуванні краще її уникати.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement