YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Ukrainian subtitles

← Використання циклів з масивами (відео версія)

Це просто показ екрану нашої інтерактивної бесіди щодо кодування, готової щоб полегшити створення перекладу і субтитрів. Краще дивитися наші бесіди тут:
https://www.khanacademy.org/cs/programming/

Get Embed Code
9 Languages

Showing Revision 15 created 05/14/2016 by Іван Соломаха.

  1. Ми повернулися до програми, що виводить
    масив моїх друзів.

  2. Але є дещо, що справді дратує мене.
  3. Кожного разу додаючи нового друга в масив,
    мені потрібно ввести нову текстову команду
  4. Скажемо, я додаю Вінстона.
  5. Що ж, він автоматично не виводиться.
  6. Якщо я хочу, щоб він, щоб показався, мені
    слід ввести 'text(myFriends[3]',а потім
  7. змінити положення у, і тоді ми побачимо,
    Вїнстона. Так що це занадто багато роботи.

  8. Я хочу щоб кожного разу додаючи когось в
    масив команда тексту вводилась автоматично
  9. І так, ви пам'ятаєте, що ми вчили цикли?
  10. Цикли є чудовим способом щоб повторити той
    самий кусочок коду багато разів підряд.
  11. Наприклад, якщо б ми хотіли мати купу
    дерев в ряд або повітряних куль.
  12. Як виявилось, цикли це хороший спосіб щоб
    запустити код по кожному елементі в масиві
  13. Насправді, ви будете використовувати цикл
    майже зажди, коли ви використовуєте масив.
  14. Вони працюють дуже добре разом.
  15. Отже, використаємо цикл щоб показати імена
    моїх друзів замість цих текстових команд
  16. щоб показати що я маю на увазі.
  17. Тому, ми розпочнемо з трьох питань які ми
    ставимо собі кожного разу створюючи цикл.
  18. По-перше, що я хочу повторити. Подивимось
    тут. Що повторюється? текстова команда.
  19. Що я хочу змінювати кожного разу?
    Отже, подивлюсь, що відрізняється.
  20. Позиція "y" і цей показник, так? Отже,
    кількість друзів та "y" позиція
  21. І як довго нам слід повторюати? Будемо
    продовжати до тих пір, поки
  22. не закінчаться друзі.
  23. Отже, тепер ми знаємо, що ми хочемо,
    і можемо зробити наш цикл.
  24. Ми починаємо зі змінною лічильника, щоб
    відстежувати, де ми знаходимося в циклі.
  25. Так що ми скажемо "var friendNum = 0;"
  26. Ми почнемо з нуля, тому що пам'ятаєте, що
    0 є першим елементом в масиві, а не 1.
  27. Тоді у нас є умовний цикл. Отже ми введемо
    "while(friendNum < my friends.length)".
  28. Тоді, поточну змінну лічильника порівняємо
    з загальною кількостю речей в масиві
  29. всередині циклу де ми використовуємо
    нашу текствову команду.
  30. Отже, введемо:"text(myFriends[" а тоді
    тут замість числа, поставимо "friendNum"
  31. так як"friendNum" відображає поточне чилсо
  32. І тоді ми встановимо одну позицію зараз.
  33. Це дало нам нескінченну помилку циклу,
    так як ми нічого не змінили в friendNum.
  34. Пам'ятайте, що нам потрібно збільшувати
    friendNum кожен раз, інакше цикл триватиме
  35. вічно, тому що ця умова завжди істинна.
  36. Бачу трапилось щось. Я закоментую старий
    код, і я побачу, що сталося.
  37. Зараз ми маємо те, що показали всі імена,
    але вони всі один на одному.
  38. Отже, нам потрібно змінити свою позицію у.
    тому просто введемо 'friendNum*30'
  39. Добре, але Софія за екраном і вона
    не буде дуже радою дізнавшись про це.
  40. Отже, просто додамо 30 до цього. І тепер
    всі вони зміщуються на 30.
  41. Гарно! Так що тепер ви бачите, що у нас є
    цикл, що відображає наш масив.
  42. І це означає, що якщо ми додамо більше
    таких людей, як OhNoEsGuy, або можливо
  43. навіть Сал і якщо просто додати його в
    масив, то він буде моїм другом.
  44. Відмінно! Тепер він мій приятель.
  45. Бачите, що він просто автоматично показує
    нових друзів, так як це завжди проходить
  46. через весь масив.
  47. Отже, ми можемо видалити наш старий код.
    Нам він більше не потрібний
  48. І давайте просто переглянемо цей код
    тут і подивимось, що він робить.
  49. Таким чином, ми починаємо "friendNum"
    рівне нулю.
  50. Ми перевіряємо, чи friendNum менше
    поточної довжини.
  51. Таким чином, уявіть собі, що 0 менше 6
    Це істина.
  52. І тоді всередині тут, ми ввели
    text, my freinds friendNum.
  53. І це стане нулем, в перший раз.
    А потім 30 плюс нуль помножити на 30.
  54. Код відображає Софію в 10 і 30. Ось що він
    робить. А тоді FriendNum ++. стає 1.
  55. Потім він йде назад знову і каже: "Добре,
    чи 1 менше, ніж myFriends.length? Звісно"
  56. І так продовжується далі і далі і далі.
  57. Ми нарешті добрались до Сал. Пам'ятайте,
    що насправді Сал шостий елемент в масиві,
  58. але його показник 5, так як ми починаємо
    з нуля. Отже, п'ять менше за шість? Звісно
  59. Так що він відображає myFriends 5
  60. І тоді стає шість, і ми говоримо, "шість
    менше, ніж шість?" Ні. рівні.
  61. І це буде не істинною. Так що ми ніколи не
    покажемо шостий елемент,
  62. це добре, так як немає нічого в індексі
    шість.
  63. Є шостий елемент, але нічого в індексі 6.
  64. це можливо досить заплутано, щодо 1 та 0
    і робити все це, але ви впораєтесь з цим.
  65. Гаразд. Отже, це наш цикл.
  66. Тепер, якщо хочете, можете використовувати
    цикл for, якщо ви віддаєте перевагу їм.
  67. Для циклу for введемо 'for,' а потім 'var
    friendNum = 0;' і тоді матимемо нашу умову
  68. 'friendNum < myFriends.length'
  69. а потім наше зростання: 'friendNum++'
  70. І потім всередині циклу for ми можемо
    просто поставити саме цей рядок коду сюди.
  71. І я просто зміню "x" щоб ви побачили
    Він робить точно те ж саме.
  72. Отже, це залижить від вас, який з них ви
    використовуєте, але справа в тому, щоб
  73. використовувати цикл з масивами,
    тому що це зробить вас дуже могутніми.