Avatar
Jiří Jeřábek (thechorcheecz):

Zdravím, mohl by mi tu někdo vysvětlit rozdíly mezi cykly For, While a Do-While prosím. Díky

 
Odpovědět 3.3.2014 17:57
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Jiří Jeřábek (thechorcheecz)
Jan Vargovský:
  • Určitý počet cyklů
  • s podmínkou na konci
  • s podmínkou na začátku
 
Nahoru Odpovědět 3.3.2014 18:10
Avatar
Snorlax
Redaktor
Avatar
Snorlax:

V C sice nedělám, ale tipuju že v PHP to bude minimálně podobný:
Všechno to jsou cykly, tudíž opakují nějakou část programu, každý ale je odišný v podmínce:
WHILE

while (i < ii)/* dokud i, je menší ii, proveď "smyčku". pokud i < ii už před cyklem, cyklus se přeskočí */
{
printf("cyklus");
i++; /*POkud nechceme skončit v nekonečné smyčce měli bysme přičítat k i*/
}

FOR

for (i = 0, a = 5; i < ii; i++, a++)/*inicializace promněnných, proměnné se oddělují čárkou; podmínka jako u while; co se má udělat po vykonání cyklu*/
{
printf("cyklus");
/*zde už nemusíme dávat i++ jelikož je to nahože ve FORu*/
}

DO-WHILE

do
{
printf("cyklus");
i++; /*POkud nechceme skončit v nekonečné smyčce měli bysme přičítat k i*/
}
while (i < ii)/* dokud i, je menší ii, proveď "smyčku". pokud i < ii už před cyklem, cyklus se udělá minimálně jednou, jelikož podmínka se kontroluje až na konci */

Nakonec bych ještě doporučil tohle na wiki:
//while ne wiki neni
http://cs.wikipedia.org/wiki/Cyklus_for
http://cs.wikipedia.org/…lus_do-while

Snad ti odpoveď stačí...
PS: zas připomínám že v C nedělám, ale v PHP, tak nevim jestli je to syntaticky správně, tipnul jsem to :D

Nahoru Odpovědět 3.3.2014 18:25
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Odpovídá na Snorlax
Libor Šimo (libcosenior):

Máš to správne.
while - podmienka je na začiatku cyklu, teda ak nie je splnená, cyklus neprebehne ani raz. (aby sa cyklus opakoval, musí sa meniť hodnota podmienky, napr. i++;)
do while - podmienka je na konci cyklu, teda aj keď nie je splnená, cyklus prebehne jeden krát. (aby sa cyklus opakoval, musí sa meniť hodnota podmienky, napr. i++;)

for - je ako while, ale všetko v jednom, (nemusí sa zvlášť meniť hodnota podmienky, je už menená priamo vo výraze for( ; ; i++))

Nahoru Odpovědět 4.3.2014 16:55
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
vitamin
Člen
Avatar
vitamin:
]:>
WHILE:
if(i < ii){
        printf("cyklus");
        i++;
        goto WHILE;
}

//-----------------------------------------

DO_WHILE:
printf("cyklus");
i++;
if(i < ii)goto DO_WHILE;


//-----------------------------------------

{
        int i = 0, a = 5;
        FOR:
        if(i < ii){
                printf("cyklus");

                i++, a++;
                goto FOR;
        }
}
 
Nahoru Odpovědět  +1 4.3.2014 17:43
Avatar
Odpovídá na vitamin
Libor Šimo (libcosenior):

Pokiaľ mám správne informácie, goto by sa nemalo používať, alebo len vo vnorených cykloch. :`
Ale ty sa asi len bavíš. :-)

Editováno 4.3.2014 17:48
Nahoru Odpovědět 4.3.2014 17:46
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.