Autor | Zpráva | ||
---|---|---|---|
Joker Profil |
Autor: Joker
Odkaz na aktuální verzi textu: Základní kurz 11: Cykly zveřejněno Odkud se vede diskuse k aktuálnímu stavu textu: První příspěvek po poslední revizi textu Po delší době nová kapitola, mám nějak hotovou i tu další a brzy snad bude ještě jedna. |
||
juriad Profil |
#2 · Zasláno: 13. 11. 2012, 18:46:31
- základní struktura pro řízení běhu programu
jsem zvyklý na přívlastky řídící struktura a datová struktura, každé znamená něco úplně jiného; trochu jsem se v této větě ztratil a musel popřemýšlet - „Opakuj daný blok kódu tak dlouho dokud je splněna nějaká podmínka“. chybí čárka před dokud - Na jeden druh situací, kdy by toto šlo využít, jste asi narazili už když jsme mluvili o [odkaz]polích[/odkaz] problém v zájmenu toto - odkazuje se na nadpis, nebo obsah předchozího textu? V prvním případě není zatím vysvětlený termín foreach - „Opakuj načtení dalšího prvku pole a nějakou operaci s ním tak dlouho, dokud ten další prvek existuje“. nelíbí se mi formulace, ale nezlepším to - Pro tento účel slouží v PHP foreach .
Tomuto účelu slouží ... - Pokud klíče položek v poli pro daný cyklus nepotřebujete, je možné zápis zkrátit: ... přesuň až za příklad a ten ukaž i v této zkrácené variantě - pro jiný vstup generuje varování (warning). chybí podmět: PHP? - Toho je možné dosáhnout použitím referencí Tohoto ... - Velmi podobný druh cyklu je cyklus do … while , který se liší jen tím, že zatímco cyklus while [první zmínka, čemu je podobný, je až tady] vždy nejdřív ...
... který se liší od cyklu while tím, že cyklus do-while ... , zatímco while ... // jen prohození, dříve zmíní podobnost s while - Poslední typ cyklu ... Posledním typem cyklu ... - Tento Zkus použít jiné zájmeno, nebo možná přeformuluj úplně - provedeme kód kde zvyšujeme lépe: provádí kód, který zvyšuje - příklad for: echo "Suma čísel od 1 do $cislo je: $soucet";
určitě ne $cislo, ale $vstup - v praxi se používá Velké písmeno na začátku věty - Například kdybychom měli pole, kde chceme vypsat všechny jeho hodnoty kromě nul: lépe: Například mějme pole čísel a chceme vypsat všechny jeho hodnoty kromě nul. - příklad: <?php $pole = array(1, 5, 0, 4, 9, 0, 3); //funkce count() vrátí počet položek v poli $velikost = count($pole); $i = 0; while (($i < $pocet) && ($pole[$i] != 0)) { echo "Hodnota na indexu $klic v poli je: $hodnota <br>"; } ?> |
||
Joker Profil |
#3 · Zasláno: 13. 11. 2012, 20:23:12
juriad:
Díky za připomínky. > - pro jiný vstup generuje varování (warning). > chybí podmět: PHP? Bylo to myšlené, že cyklus foreach generuje varování. Nebo bych tam mohl dát „se generuje varování“. Zbytek upravím, díky. |
||
mimochodec Profil |
#4 · Zasláno: 14. 11. 2012, 09:18:07
Joker:
Mně se to nedařilo otevřít včera a neotvírá se mně to ani teď. |
||
Joker Profil |
#5 · Zasláno: 15. 11. 2012, 17:28:09
juriad:
Aktualizoval jsem text ve smyslu připomínek. mimochodec: Tak to netuším, v čem je problém. Mně to funguje normálně. |
||
Časová prodleva: 3 měsíce
|
|||
Kcko Profil |
#6 · Zasláno: 31. 1. 2013, 18:44:03
Joker:
<?php $pole = array(1, 5, 0, 4, 9, 0, 3); //funkce count() vrátí počet položek v poli $velikost = count($pole); $i = 0; while (($i < $pocet) && ($pole[$i] != 0)) { echo "Hodnota na indexu $klic v poli je: $hodnota <br>"; } ?> Tento příklad je špatně. $klic , $hodnota a $pocet jsou neexistující proměnné a pokud se nepoužije inkrementace $i tak se to zacyklí, začátečníka to může zmást.
Dále tato věta V praxi se používá operátor inkrementace či dekrementace ($cislo--;, resp. $cislo++;). je obráceně, dekrementace či inkrementace nebo prohodit proměnné v závorce. Jsou to drobnosti, ale začátečník se je může naučit ("špatně"). |
||
Časová prodleva: 16 dní
|
|||
Joker Profil |
#7 · Zasláno: 16. 2. 2013, 15:59:23
Kcko:
Jo, ten příklad byl divný, jsem asi něco zkopíroval a pak to nedodělal. Zapracoval jsem připomínky, nová verze na php.it-joker.cz/?uri=zakladni-kurz/11-cykly |
||
Časová prodleva: 1 rok
|
|||
Joker Profil |
#8 · Zasláno: 15. 6. 2014, 18:20:47
Zveřejnil jsem kapitolu o cyklech na Péhápku.
|
||
Chro Profil |
#9 · Zasláno: 17. 6. 2014, 04:13:49
Možná by v kapitole o cyklech stálo za zmínku, že konstrukcí break (podobně jako continue), lze vyskočit i z více probíhajících cyklů for, foreach, while. Příklad break 2; atd.
Mimochodem, nemělo by se TRUE/FALSE psát v kódech velkými písmeny? Měl jsem vždy za to, že jsou to konstanty. |
||
Joker Profil |
#10 · Zasláno: 17. 6. 2014, 09:28:47
Chro:
„konstrukcí break (podobně jako continue), lze vyskočit i z více probíhajících cyklů“ Jasně, já měl za to, že to tam je. Ale ono to je u continue a u break ne.
Opravil jsem. A když už jsem to dělal, doplnil jsem i informaci, že break umí ukončit i celý skript.
A dodělal jsem pro continue a break vlastní podnadpisy.
„Mimochodem, nemělo by se TRUE/FALSE psát v kódech velkými písmeny?“ No, možná. Jsou to konstanty, ale jsou case-insensitive. Takže prakticky je to jedno, formálně by to asi velkými písmeny být mělo. Já jsem zvyklý je v kódu psát malými písmeny. |
||
Časová prodleva: 2 roky
|
|||
Martin Adámek Profil |
Myslím, že by bylo lepší ve výkladu posunout for nad while a do while.
Aby to odpovídalo principu, že pokud jde použít foreach, má se použít foreach; elseif jde použít for, má se použít for; a až pak while nebo do while. Jak je for odstrčenej dole, tak se obávám, že čtenář ho už příliš nevezme na vědomí, protože for mu nepřinese nic, co by neuměl while. S tím souvisí i v článku níže umístěná věta Příklad výše demonstruje, že podmínka nemusí být jen jednoduchá „pokud počítadlo nedosáhlo nějaké hodnoty“, ale může být zapsaná i výrazem. |
||
Keeehi Profil |
#12 · Zasláno: 19. 7. 2016, 04:32:07
Cykly while a for jsou ekvivalentní a je úplně jedno, který se použije. Použiješ ten, který se ti zrovna více líbí (lépe sedí v kódu).
|
||
Joker Profil |
#13 · Zasláno: 19. 7. 2016, 09:20:17
Martin Adámek:
> pokud jde použít foreach, má se použít foreach; > elseif jde použít for, má se použít for; > a až pak while nebo do while. Podle téhle úvahy by se while a do-while nepoužily nikdy, protože jakékoliv použití některého z nich jde nahradit i cyklem for. A jak píše Keeehi, for není nějak univerzálně lepší, preferovaný typ cyklu je dalo by se říci „který je na tom místě hezčí“. Jinak v té kapitole se postupuje od jednoduššího ke složitějšímu, podle mě je cyklus for pro začátečníka nejsložitější na pochopení. Dává lepší smysl nejdřív vysvětlit principy na „ukecanějším“ cyklu while a pak vysvětlit, že for je vlastně zhuštěný zápis téhož, než současně vysvětlovat principy cyklu i ten zhuštěný zápis. |
||
Časová prodleva: 7 let
|
0