Advertisement
Timkor

cities

Mar 25th, 2021 (edited)
859
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Задача про міста
  2. Спитайте в людини 10 назв міст, по черзі.
  3.     Після цього спитайте про її рідне місто.
  4.     Якщо виявиться, що програма знає її рідне місто, то повинна вивести ОДИН напис "я знаю твоє місто!"
  5. Якщо виявиться, що програма не знає її рідне місто, то повинна вивести ОДИН напис "я НЕ знаю твоє місто!"*/
  6.  
  7. let citys = [] // задаю переменную массив городов
  8. let nativeCity = "" // задаю переменную родного города
  9. let message = "я НЕ знаю твой город!" // задаю переменную контейнер сообщения, с изначальным значением "я НЕ знаю твой город!"
  10. /* значення за замовчуванням - добре!*/
  11. for (let i = 10; i > 0; i--) { // запускаю цикл, который заполняет массив городами // але не з початку, і не до початку.
  12.     citys[i] = prompt("Назовите случайный город № " + i)
  13. }
  14. /* у циклі є помилка, яка залишає самий перший елемент масиву невизначеним, далі в коді в наступному циклі
  15. * помилка повторюється, що не викриває цю помилку, але якщо б це був проект який розвивається та підтримується, то
  16. * верогідно рано чи пізно вона б "вискочила" */
  17. nativeCity = prompt("Назовите ваш родной город") // пользователь обозначает переменную nativeCity
  18. // let isFound = false; // змінна що відображає результат пошуку, якщо знайшли, то ій треба присвоїти true
  19. for (let j = 10; j > 0; j--) { // запускаю цикл перебора массива городов
  20.     if (citys[j] == nativeCity) { // ввожу условие с сравнением каждого члена массива с переменной родной город
  21.         message = "я знаю твой город!" // если эти значения совпадают, то меняю значение переменной меседж
  22.         // ... тут буде треба "підняти" прапор
  23.     }
  24. }
  25. console.log(message) // вывожу переменную меседж
  26. /* так, ваша ідея створити змінну та розділити функціонал на
  27. *  - окремо пошук (не виводити у пошуку відповідь, бо виводилась би неоднарозово)
  28. *  - окремо вивід відповіді (можна зручно міняти варіанти дій при певних результатах пошуку)
  29. * цілком правильне, і більш того - така декомпозиція йде лейтмотивом через програмування. факультативні нюанси:
  30. *  - у ролі змінної що відповідає за результат пошуку можна використати булеву змінну - прапор, якщо дати їй
  31. * зручне іменування, наприкла isFound, то код буде добре читатися, а відповідь стане ще більш незалежною від
  32. * пошуку.
  33. *  - що до ефективності коду, уявіть що масив міст - то всі міста на планеті, а рідне місто , ну так вийшло, майде перше
  34. * у цьому масиві трапляється.. чи можна якось прискорити вивід відповіді при таких розкладах?) Якщо зможете НЕ використати
  35. * brake (а використаєте вишеприведений прапор) то буде круто. Хоча обидва варіанти допустимі - все ж якщо є можливість не використати брейк, то краще без "стоп-крану" )  
  36.  Підказка що до безбрейкової реалізації така: for ( поки не всі елементи перебрали AND чиЗнайдено === ні )
  37. * Умову if (якасьБулеваЗмінна === false) скорочено можно записати так: if (!якасьБулеваЗмінна), та відповідно
  38. * Умову if (якасьБулеваЗмінна === true) скорочено можно записати так: if (якасьБулеваЗмінна)  */
  39.  
  40. /* Гарного коду! */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement