Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Задача про міста
- Спитайте в людини 10 назв міст, по черзі.
- Після цього спитайте про її рідне місто.
- Якщо виявиться, що програма знає її рідне місто, то повинна вивести ОДИН напис "я знаю твоє місто!"
- Якщо виявиться, що програма не знає її рідне місто, то повинна вивести ОДИН напис "я НЕ знаю твоє місто!"*/
- let citys = [] // задаю переменную массив городов
- let nativeCity = "" // задаю переменную родного города
- let message = "я НЕ знаю твой город!" // задаю переменную контейнер сообщения, с изначальным значением "я НЕ знаю твой город!"
- /* значення за замовчуванням - добре!*/
- for (let i = 10; i > 0; i--) { // запускаю цикл, который заполняет массив городами // але не з початку, і не до початку.
- citys[i] = prompt("Назовите случайный город № " + i)
- }
- /* у циклі є помилка, яка залишає самий перший елемент масиву невизначеним, далі в коді в наступному циклі
- * помилка повторюється, що не викриває цю помилку, але якщо б це був проект який розвивається та підтримується, то
- * верогідно рано чи пізно вона б "вискочила" */
- nativeCity = prompt("Назовите ваш родной город") // пользователь обозначает переменную nativeCity
- // let isFound = false; // змінна що відображає результат пошуку, якщо знайшли, то ій треба присвоїти true
- for (let j = 10; j > 0; j--) { // запускаю цикл перебора массива городов
- if (citys[j] == nativeCity) { // ввожу условие с сравнением каждого члена массива с переменной родной город
- message = "я знаю твой город!" // если эти значения совпадают, то меняю значение переменной меседж
- // ... тут буде треба "підняти" прапор
- }
- }
- console.log(message) // вывожу переменную меседж
- /* так, ваша ідея створити змінну та розділити функціонал на
- * - окремо пошук (не виводити у пошуку відповідь, бо виводилась би неоднарозово)
- * - окремо вивід відповіді (можна зручно міняти варіанти дій при певних результатах пошуку)
- * цілком правильне, і більш того - така декомпозиція йде лейтмотивом через програмування. факультативні нюанси:
- * - у ролі змінної що відповідає за результат пошуку можна використати булеву змінну - прапор, якщо дати їй
- * зручне іменування, наприкла isFound, то код буде добре читатися, а відповідь стане ще більш незалежною від
- * пошуку.
- * - що до ефективності коду, уявіть що масив міст - то всі міста на планеті, а рідне місто , ну так вийшло, майде перше
- * у цьому масиві трапляється.. чи можна якось прискорити вивід відповіді при таких розкладах?) Якщо зможете НЕ використати
- * brake (а використаєте вишеприведений прапор) то буде круто. Хоча обидва варіанти допустимі - все ж якщо є можливість не використати брейк, то краще без "стоп-крану" )
- Підказка що до безбрейкової реалізації така: for ( поки не всі елементи перебрали AND чиЗнайдено === ні )
- * Умову if (якасьБулеваЗмінна === false) скорочено можно записати так: if (!якасьБулеваЗмінна), та відповідно
- * Умову if (якасьБулеваЗмінна === true) скорочено можно записати так: if (якасьБулеваЗмінна) */
- /* Гарного коду! */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement