Advertisement
Timkor

elevator

Jan 1st, 2021 (edited)
1,018
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let a = prompt('який № поверху?')
  2. if (a < 1 || a > 9) {
  3.     console.log('невірний поверх!')
  4. } else if (a == 1 || a == 2 || a == 3 || a == 7 || a == 8 || a == 9) { // цю умову можна записати лаконічно та ізящно,
  5.     // поміркуйте самостійно. Підказка якщо не вийде нижче за #1.
  6.     console.log('OK!');
  7. } else {
  8.     if (a == 4 || a == 5 || a == 6) { // поміркуйте, які значення можуть попасти до цього міста програми, враховуючи
  9.         // дві попередні умови та команди else - підказка нижче за #2  
  10.         console.log('ввести пароль')
  11.         let pass = prompt(' ввести пароль') // тут повертається строка
  12.         if (pass != 1337) {
  13.             console.log('не вірний пароль!')
  14.         } else if (pass == 1337) { // тут використовуєте "не строге" порівняння з числом, якщо написати так pass === 1337,
  15.                                    // то не спрацює. А як можна зробити щоб спрацювало з перевіркою ідентичності === ?
  16.                                    // Є декілька способів у підказці  #3
  17.             console.log('OK!!')
  18.         }
  19.     }
  20. }
  21.  
  22. // варто використовувати фігурні дужки завжди, навіть якщо одна команда в блокові перевірці чи циклу.
  23. // Гарного коду в новому році!)
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. /* #1
  33.  Перелічувати всі поверх таким чином це як намагатися здертися на Бурдж Халіфа пішки -  скористаймося.. ліфтом.)
  34. якщо брати загальний випадок для умови, що перевіряє чи поверх належить до двох діапазонів :  1-3 чи 7-9, то умову можна записати так:
  35. if ( (a >= 1 && a <= 3) || (a >= 7 && a <= 9)
  36. Але можна дещо спростити логіку використав те, що у попередній умові if (a < 1 || a > 9) ми вже перевіряємо значення і після неї до else  попадуть лише валідні поверхи (від 1 до 9 ) тому лишиться перевірити лише такі умови:
  37. if (a <= 3 || a >= 7)
  38.  
  39. #2
  40. елсе - значить інакше, тобто доберуться до тієї перевірки лише значення , що не підійшли під дві попередні умови. ТОбто не менші за 1 але й не більше за 9, а ще більші за 3 але й менші за 7.. Тобто можна код ще дещо спростити.
  41.  
  42. #3
  43. Якщо перевіряти ідентичність ( === ) строки зі строкою, то можна написати так
  44. if (pass === '1337')
  45. Якщо прийняти не стоку а число, це можна зробити так
  46. let pass = + prompt(' ввести пароль') або let pass = parseInt(prompt(' ввести пароль'))
  47. тоді можна звіряти ідентичність з числом
  48. if (pass === 1337)
  49.  
  50. Перевірка рівності за допомогою == поверне тру і для строки і для числа, тобто вона намагається привести тип до того, що задовольняє умові. Це може викликати неоднозначність, а в програмуванні краще її уникати.
  51. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement