NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 7 - Cykly v C# .NET - for a while

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
pgarsky
Člen
Avatar
pgarsky:15.4.2016 8:54

Ahojte, mohl by mi tohle někdo vysvětlit?
Udělal jsem si takovou malou aplikaci. Tato aplikace má po zapnutí vypsat 10 000 x "Pracuji", poté psát do nekonečna "Hotovo". To se mi podařilo, kód vidíte níže.

for (int i=0;i <= 10000;i++)
            {
                Console.WriteLine("Pracuji");
            }
            for (int i=0;i >= 0;i++)
            {
                Console.WriteLine("Hotovo");
            }
            Console.ReadKey();

Když jsem v tom prvním cyklu změnil "i++" na "i--", slovo "Pracuji" to psalo do nekonečna a to druhé ani nenaskočilo. Jak to ?

Odpovědět
15.4.2016 8:54
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Libor Šimo (libcosenior):15.4.2016 9:05

i-- = 0, -1, -2, -3, ..., nikdy viac ako 10000. Preto nekonečný cyklus.

Editováno 15.4.2016 9:06
Odpovědět
15.4.2016 9:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na pgarsky
Libor Šimo (libcosenior):15.4.2016 9:09

for (int i=0;i <= 10000;i++)
int i = 0 je východisková hodnota
i <= 10000 je cyklus pokračuje, kým je splnená podmienka, že hodnota je menšia alebo rovný 10000
i++ je zvyšovanie východiskovej hodnoty o jedna v každom cykle

Odpovědět
15.4.2016 9:09
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
pgarsky
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
pgarsky:15.4.2016 9:50

Pořád nechápu, konkrétně nechápu ten přechod mezi int i=0 a i <= 10000

Odpovědět
15.4.2016 9:50
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Libor Šimo (libcosenior):15.4.2016 10:00

Vieš ako pracuje i++
???

Odpovědět
15.4.2016 10:00
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na pgarsky
Martin Turner:15.4.2016 10:15

Jak psal Libor, v cyklu for (int i=0;i <= 10000;i++) nabývá i-čko díky i++ hodnot 0, 1, 2, 3... Když bude i>10000, tak se cyklus ukončí, nesplňuje podmínku i<=10000. Pokud použiješ i--, tak i-čko bude postupně 0, -1, -2, -3,..., což znamená, že to vždycky bude menší nebo rovno 10000, proto cyklus nebude ukončen.
int i = 0 znamená výchozí hodnota
i <= 10000 podmínka, cyklus běží dokud je spněna
i++ inkrementace hodnoty i o jedničku (neboli i=i+1)
i-- snížení hodnoty i jedničku (neboli i=i-1)

Už je to trochu jasnější? :-)

 
Odpovědět
15.4.2016 10:15
Avatar
Odpovídá na pgarsky
Libor Šimo (libcosenior):15.4.2016 10:46
for (int i = 0;i <= 10000; i++)
{
      Console.WriteLine("Poradové číslo: " + i + ". Pracuji");
}

Toto celé je cyklus, teda niekoľko násobné opakovanie tohto kódu.
Cyklus sa opakuje toľko krát, koľko krát je splnená podmienka.
V tomto prípade je podmienkou, že hodnota premennej i musí byť menšia ako císlo 10000.
Hodnota i začína na hodnote 0 a po každom cykle sa zväčší o jedna.
Keď hodnota i dosiahne číslo 10000, cyklus sa skončí.

Tento riadok si uprav tak, ako som napísal:

Console.WriteLine("Poradové číslo: " + i + ". Pracuji");

a tento cyklus zmaž:

for (int i=0;i >= 0;i++)
{
      Console.WriteLine("Hotovo");
}

Spusti program.
Z výpisu to už hádam pochopíš.
Ak nie, kašli na to a najdi si niečo iné.

Odpovědět
15.4.2016 10:46
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
pgarsky
Člen
Avatar
Odpovídá na Martin Turner
pgarsky:15.4.2016 10:56

Joo děkuji, už to chápu :)

Odpovědět
15.4.2016 10:56
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
pgarsky
Člen
Avatar
pgarsky:15.4.2016 10:59

Děkuji vám oboum za pomoc, ještě bych potřeboval poradit s něčím.
Jak by vypadal kod, když bych chtěl udělat, aby to slovo "Pracuji" napsal třeba 1 x za sekundu ?

Odpovědět
15.4.2016 10:59
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Odpovídá na pgarsky
Libor Šimo (libcosenior):15.4.2016 11:07

Do cyklu vložíš pauzu na 1 sekundu.

Odpovědět
15.4.2016 11:07
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 10 zpráv z 208.