< Return to Video

Cyklování polí

  • 0:01 - 0:02
    A jsme zpátky u programu,
  • 0:02 - 0:04
    který pomocí pole vypisuje
    seznam mých kamarádů.
  • 0:04 - 0:07
    Něco se mi ale na něm
    vůbec nelíbí.
  • 0:07 - 0:09
    Pokaždé, když do pole
    přidám nového kamaráda,
  • 0:09 - 0:11
    musím zde dolů přidat nový
    textový příkaz.
  • 0:11 - 0:13
    Řekněme, že přidám Winstona.
  • 0:13 - 0:15
    Neukáže se jen tak.
  • 0:15 - 0:20
    Pokud chci, aby se ukázal,
    musím napsat "text(myFriends[3]...".
  • 0:20 - 0:22
    Potom ještě změním polohu y
    a pak už uvidím Winstona.
  • 0:22 - 0:25
    To je zbytečně moc práce.
  • 0:25 - 0:31
    Chci, aby se při přidání někoho do pole
    vytvořil textový příkaz automaticky.
  • 0:31 - 0:34
    Pamatujete si, jak jsme
    se učili cykly?
  • 0:35 - 0:38
    Cykly nám pomohly opakovat
    tu samou část kódu několikrát za sebou.
  • 0:38 - 0:41
    Například když jsme chtěli
    mít několik stromů za sebou.
  • 0:41 - 0:43
    Nebo hromadu balónů.
  • 0:43 - 0:47
    Cykly jsou mimo jiné taky
    skvělým způsobem pro to,
  • 0:47 - 0:49
    jak přehrát část kódu
    pro každý prvek v poli.
  • 0:50 - 0:54
    Cykly použijete skoro vždy,
    když budete používat pole.
  • 0:54 - 0:56
    Pracují spolu opravdu dobře.
  • 0:57 - 1:00
    Pojďme tedy pro zobrazení
    jmen mých přátel použít cyklus.
  • 1:00 - 1:03
    Použijeme ho namísto všech
    těchto textových příkazů.
  • 1:03 - 1:05
    Začneme se třemi otázkami,
  • 1:05 - 1:08
    na které se ptáme vždy,
    když tvoříme cyklus.
  • 1:08 - 1:09
    První: co chci opakovat?
  • 1:09 - 1:13
    Podívám se, co se opakuje,
    a vidím textový příkaz.
  • 1:13 - 1:15
    Druhá: co chci pokaždé změnit?
  • 1:15 - 1:20
    Podíváme se a zjistíme, že odlišná
    je poloha y a aktuální index.
  • 1:20 - 1:25
    Kamarádovo číslo a poloha y.
  • 1:25 - 1:27
    Třetí: jak dlouho chceme opakovat?
  • 1:27 - 1:31
    Chceme opakovat, až dokud
    nevypíšeme všechny kamarády.
  • 1:34 - 1:37
    Teď už víme, co chceme,
    a tím pádem můžeme vytvořit cyklus.
  • 1:37 - 1:41
    Začneme proměnnou pro počítaní,
    abychom měli přehled o stavu cyklu.
  • 1:41 - 1:43
    Napíšeme:
    var friendNum = 0;
  • 1:44 - 1:49
    A číslem 0 začíname kvůli tomu,
    že je to zároveň prvním číslem pole.
  • 1:49 - 1:50
    Není to číslo 1.
  • 1:50 - 1:52
    Poté máme while cyklus.
  • 1:52 - 1:57
    Napíšeme:
    while(friendNum < myFriends.length)
  • 1:58 - 2:03
    Porovnáme tedy aktuální počítadlo
    s celkovým počtem věcí v poli.
  • 2:04 - 2:07
    A uvnitř cyklu, tam kde používáme
    textové příkazy,
  • 2:07 - 2:12
    napíšeme textový příkaz myFriends,
    akorát místo čísla napíšeme "friendNum".
  • 2:12 - 2:14
    FriendNum totiž představuje
    aktuální číslo.
  • 2:14 - 2:18
    Pro teď určíme jen jednu pozici.
  • 2:18 - 2:22
    Náš kód momentálně produkuje
    chybu s nekonečným cyklem.
  • 2:22 - 2:26
    A to kvůli tomu, že jsme
    ohledně friendNum nic nezměnili.
  • 2:26 - 2:30
    Musíme friendNum pokaždé zvyšovat,
    jinak pojede smyčka donekonečna.
  • 2:30 - 2:32
    To kvůli tomu, že by
    to bylo vždy true.
  • 2:32 - 2:36
    Něco se stalo, teď
    zakomentuji starý kód.
  • 2:36 - 2:38
    Tím pádem můžu vidět,
    co se to vlastně stalo.
  • 2:38 - 2:44
    Takže jsme zobrazili všechna jména,
    jsou ale všechna naházena přes sebe.
  • 2:44 - 2:45
    Musíme změnit polohu y.
  • 2:46 - 2:49
    Napíšeme friendNum krát 30.
  • 2:50 - 2:53
    Je to sice fajn, ale Sophia se
    teď nachází mimo obrazovku.
  • 2:53 - 2:55
    A pokud to zjistí,
    tak ji to moc nepotěší.
  • 2:55 - 3:00
    Pojďme k tomu přidat 30,
    čímž je všechny posuneme o 30.
  • 3:00 - 3:04
    Pěkné, teď máme cyklus
    zobrazující naše pole.
  • 3:04 - 3:07
    A to znamená, že kdybychom
    měli více lidí, jako Ohnoes Guy,
  • 3:07 - 3:12
    nebo dokonce Sala, z kterého přidáním
    do pole udělám svého kamaráda.
  • 3:12 - 3:14
    A teď je můj kámoš.
  • 3:14 - 3:18
    Jak vidíte, nové kamarády to
    zobrazuje automaticky,
  • 3:18 - 3:21
    protože se to pokaždé
    přidá do celého pole.
  • 3:21 - 3:24
    Náš starý kód můžeme smazat,
    už ho nebudeme potřebovat.
  • 3:24 - 3:28
    Pojďme si teď kód projít
    a zopakovat si, jak vlastně funguje.
  • 3:28 - 3:31
    Začínáme s proměnnou friendNum
    rovné číslu 0.
  • 3:31 - 3:34
    Zkontrolujeme, zda je friendNum
    menší než aktuální délka.
  • 3:34 - 3:37
    Takže si to představíme a vidíme,
    že 0 je méně než 6.
  • 3:37 - 3:38
    To je pravdivé.
  • 3:38 - 3:42
    Poté jdeme sem a napíšeme:
    text(myFriends[friendNum]...)
  • 3:42 - 3:44
    Poprvé by to tedy bylo:
    myFriends[0].
  • 3:45 - 3:47
    Dále následuje:
    30 plus 0 krát 30.
  • 3:47 - 3:53
    Čímž se zajistí vyobrazení
    Sophie na pozicích 10 a 30.
  • 3:54 - 3:56
    Poté máme friendNum++,
    čili se hodnota stává 1.
  • 3:56 - 3:59
    Poté se cyklus opakuje a ptá se:
    je číslo 1 menší než délka pole?
  • 3:59 - 4:00
    Ano, je.
  • 4:00 - 4:02
    A cyklus běží a běží.
  • 4:02 - 4:05
    A potom se dostaneme k Salovi.
  • 4:05 - 4:11
    Sal je šestým prvkem v poli,
    má ale index 5 (kvůli začátku na 0).
  • 4:11 - 4:13
    Je 5 méně než 6?
  • 4:13 - 4:14
    Ano, je.
  • 4:14 - 4:19
    Zobrazuje to kamaráda 5
    a poté se hodnota stává 6.
  • 4:19 - 4:20
    A je 6 méně než 6?
  • 4:20 - 4:22
    Ne, není, je to rovno.
  • 4:22 - 4:24
    Podmínka bude
    tedy nepravdivá (false).
  • 4:24 - 4:25
    Nikdy se tedy
    nezobrazí šestý prvek.
  • 4:25 - 4:29
    A to je dobře, protože v
    indexu 6 nic není.
  • 4:29 - 4:33
    Šestý element je, ale
    index 6 nic neobsahuje.
  • 4:33 - 4:38
    Může to být celkem matoucí,
    nejdřív je to 0, pak 1 a pak další.
  • 4:38 - 4:39
    Naučíte se to.
  • 4:40 - 4:42
    To je tedy náš cyklus.
  • 4:42 - 4:45
    Pokud chcete,
    můžete klidně použít cyklus for.
  • 4:45 - 4:47
    V případě, že
    preferuje cyklus for.
  • 4:47 - 4:54
    Pro for cyklus napíšeme
    for(var FriendNum = 0) a podmínku.
  • 4:54 - 5:01
    FriendNum je méně než myFriends.length,
    poté máme přírůstek friendNum++.
  • 5:01 - 5:07
    A do vnitřku for cyklu
    vložíme tento řádek kódu.
  • 5:07 - 5:12
    Změním polohu x a jak vidíte,
    dělá to úplně tu samou věc.
  • 5:12 - 5:14
    Takže je na vás,
    který z nich použijete.
  • 5:14 - 5:17
    Důležité je, že použijete cyklus
    v kombinaci s vaším polem.
  • 5:17 - 5:19
    Učiní vás to opravdu mocnými.
Title:
Cyklování polí
Description:

Pamela vysvětluje, jak používat cykly k automatizaci opakování hodnot v poli.

more » « less
Video Language:
English
Duration:
05:22

Czech subtitles

Revisions