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
David Novák
Tvůrce
Avatar
Odpovedá na Marek Němec
David Novák:26.9.2023 8:25

Ahoj Marku, děkujeme za podnět. Tvůj podnět jsem předal k řešení.

Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Libor Pavlík
David Novák:26.9.2023 8:27

Ahoj Libore, děkujeme za podnět. Lekci jsem předal k aktualizaci.

Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Jiří Čičovský
David Novák:26.9.2023 8:28

Ne není. Jen aby to bylo odděleno od zbývajícího textu.

Avatar
Adéla Srbová:12.4.2024 23:03

Jediné, co musím vytknout je, že PadLeft() zde není využit, člověk si tuto funkci musí otestovat sám a tady nezjistí, co přesně dělá (ve zdrojovém kódu ukázky chybí)

Avatar
Jakub Kubále:18.6.2024 11:48

PadLeft() a PadRight()
Jelikož zatím nemáme znalosti k vytvoření takové tabulky, budeme si metody jen pamatovat a
vyzkoušíme si je dále v C# kurzu.

Dále v kurzu: Můžete si zkusit vypsané řádky upravit pomocí metody PadLeft()...

Jak? Je poměrně častým problémem, jak někde se naznačí, že něco existuje, a že se na to později podíváme, jen abychom se na to později podívali způsobem: a teď to použijte bez jediného vysvětlení.

Avatar
Jarda
Člen
Avatar
Jarda:12. mája 19:10

Ahoj, píšu kalendář a zlobí mne while smyčka. Přesněji řečeno, i když podmínka není splněna, funkce běží dál. Program po zadání 3 vypíše "Vypínání", a místo poděkování a ukončení pokračuje dál, kdy podmínku running vypíše False.
Koukám na to už půl hodiny a chybu prostě nevidím. Poradí někdo?

public bool Run()
        {
            while (running == true)
            {
                while (logedIn == false)
                {
                        //vypíše zda bool running je true nebo false
                    Console.WriteLine(running);
                    Console.WriteLine("Vyber možnost: ");
                    Console.WriteLine("1. Přihlášení uživatele ");
                    Console.WriteLine("2. Registrace uživatele ");
                    Console.WriteLine("3. Konec programu");
                    int input = Convert.ToInt32(Console.ReadLine());
                    if (input == 1)
                    {
                        activeUser = LogIn();
                        Console.WriteLine("Uživatel " + activeUser.GetName() + " přihlášen.");
                        logedIn = true;
                    }
                    else if (input == 2 && activeUser == null)
                    {
                        string name = InputName();
                        if (CheckDiary(name)) ;
                        string password = InputPassword();
                        RegisterUser(name, password);
                    }
                    else if (input == 3)
                    {
                        //nastaví bool running na false
                        running = false;
                        Console.WriteLine("Vypínání");
                    }
                }
                while (logedIn == true)
                {
                    Console.WriteLine("Vyber možnost: ");
                    Console.WriteLine("1. Vytvořit událost.");
                    Console.WriteLine("2. Najít událost dle data ");
                    Console.WriteLine("3. Odhlásit ");
                    int input = Convert.ToInt32(Console.ReadLine());
                    if (input == 1)
                    {
                        activeUser.AddEvent();
                    }
                    else if (input == 2)
                    {
                        activeUser.GetEventByDate();
                    }
                    else if (input == 3)
                    {
                        Console.WriteLine("Odhlašuji uživatele " + activeUser.GetName());
                        logedIn = false;
                    }
                }
            }
                Console.WriteLine("Děkuji za použití mého kalendáře.");
            return false;
        }

    }
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Jarda
DarkCoder:12. mája 20:00

Však si také ve vnitřním while cyklu a proměnnou logedIn, podle které se cyklus řídí, neměníš. Následná iterace vnitřního while se opět vyhodnotí jako true, což způsobí, že se cyklus opakuje.

Jinak toto asi také nebude úplně v pořádku:

if (CheckDiary(name)) ;
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Jarda
Člen
Avatar
Odpovedá na DarkCoder
Jarda:13. mája 17:58

Ahoj, díky za reakci. Ta podmínka if (CheckDiary(name)) ; skutečně nebyla v pořádku. Stačilo odstranit vnitřní podmínku(přesunuto do samostatné funkce) a už to funguje :-)

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é 8 správy z 208.