If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Преговор: Цикли

Това е преговор на наученото в урока за цикли.
Когато пишем програми, често разбираме, че трябва да повторим част от кода няколко пъти, или да го повторим, като променяме нещо всеки път. За да не пишем всичкия този код, можем да използваме цикъл. В JavaScript има два вида цикли while и for.
while цикълът е начин да повтаряме код, докато дадено условие не стане лъжа. Например този while цикъл ще показва стойността на y в (30, y), докато y е по-малко от 400. Цикълът добавя 20 към y при всяка итерация, затова в началото y е 40, но след това нараства до 60, 80, 100, 120 и т. н.
var y = 40;
  while (y < 400) {
  text(y, 30, y);
  y += 20;
}
Важно е в някакъв момент условието в скобите да стане лъжа, защото в противен случай ще получим т. нар. безкраен цикъл! Това би се случило ако махнем y + = 20, защото y ще остане 40 и винаги ще е по-малко от 400, а програмата няма да знае кога да спре.
var y = 40;
  while (y < 400) {
  text(y, 30, y);
}
Цикълът for прилича много на while цикъла, но е с по-специализиран синтаксис. Програмистите са измислили цикъла for, когато са разбрали, че винаги правят три еднакви неща – създават променлива брояч (като y от горния пример), увеличават я с някакво число, а след това проверяват дали е по-малка от дадена стойност. В синтаксиса на for цикъла има специално място за всяко едно от тези три неща. Ето първият while цикъл от горния пример, записан като for цикъл:
for (var y = 40; y < 400; y += 20) {
  text(y, 30, y);
}
Циклите могат да бъдат и вложени. Вложените цикли се използват често, особено в двуизмерното рисуване и чертане, защото по този начин се правят лесно форми, подобни на решетка. Когато вложим цикъл в цикъла, ние казваме на програмата да "прави това нещо X пъти и всеки път да прави другото нещо Y пъти." Представи си, че рисуваш мрежа – искаме да кажем на програмата да "създаде колони 10 пъти и за всяка колона да създаде по 15 клетки." Ето как можеш да използваш вложен цикъл, за да направиш това:
for (var col = 0; col < 10; col++) {
  for (var row = 0; row < 15; row++) {
    rect(col*20, row*20, 20, 20);
  }
}
Кога да използваме for и кога while? Ти решаваш. Много програмисти предпочитат for циклите, защото така е по-трудно да се създадат безкрайни цикли по невнимание (по-трудно е да забравиш да увеличиш променливата брояч), но понякога цикълът while е по-подходящ. Опитай и двата начина!

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.