Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 7. diel - Cykly v C# .NET - for a while

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
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 ?

Odpovedať
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.

Editované
Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá 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

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
pgarsky
Člen
Avatar
Odpovedá 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

Odpovedať
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++
???

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá 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ší? :-)

Avatar
Odpovedá 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é.

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

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

Odpovedať
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 ?

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

Do cyklu vložíš pauzu na 1 sekundu.

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 208.