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
David Novák
Tvůrce
Avatar
Odpovídá 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í.

 
Odpovědět
26.9.2023 8:25
Avatar
David Novák
Tvůrce
Avatar
Odpovídá 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.

 
Odpovědět
26.9.2023 8:27
Avatar
David Novák
Tvůrce
Avatar
Odpovídá 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.

 
Odpovědět
26.9.2023 8:28
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í)

 
Odpovědět
12.4.2024 23:03
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í.

 
Odpovědět
18.6.2024 11:48
Avatar
Jarda
Člen
Avatar
Jarda:12. května 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;
        }

    }
 
Odpovědět
12. května 19:10
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Jarda
DarkCoder:12. května 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)) ;
Odpovědět
12. května 20:00
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Jarda
Člen
Avatar
Odpovídá na DarkCoder
Jarda:13. května 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 :-)

 
Odpovědět
13. května 17:58
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 8 zpráv z 208.