IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 13. diel - Cykly v C# .NET druhýkrát - do-while, break a continue

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
Avatar
David
Člen
Avatar
David:20.3.2020 17:38

Ahoj, díky za článek. ;-) Skvěle napsaný, jen jsem našel překlep v části continue for (string cislo in cislaPole), tak by mělo být foreach (string cislo in cislaPole). :-)

 
Odpovedať
20.3.2020 17:38
Avatar
Odpovedá na David
Radek Vymětalík:20.3.2020 19:22

Díky za upozornění, koukneme na to. :-)

 
Odpovedať
20.3.2020 19:22
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na David
David Hartinger:24.3.2020 17:06

Opraveno :)

Odpovedať
24.3.2020 17:06
New kid back on the block with a R.I.P
Avatar
Marek Vajčner:30.3.2020 11:31

Zajímavý článek. Zdá se, že věta "všeho moc, škodí" (v daném případě přílišné zkracování kódu) platí také v programování.

 
Odpovedať
30.3.2020 11:31
Avatar
Pratos Zesporaku:24.4.2020 16:43

Zkoušel jsem DO_WHILE. S vašim stringem to funguje, ale když jsem používal bool, tak to nejde - teda jde, ale musí se ten bool nejdřív nadefinovat (true/false) což tedy pak ztrácí smysl použít DO_WHILE, proč - dělám něco špatně?

//DO_WHILE
string pismeno;
bool VolbaC;
bool PlatnaVolbaC;

// Tady ho musim nadefinovat, jinak mi dole za WHILE hlásí error
VolbaC = false;
do
{
    Console.WriteLine("Napište písmeno:");
    pismeno = Console.ReadLine();
    Console.WriteLine("Napsali jste písmeno: {0}", pismeno);
    Console.WriteLine("Chcete napsat další písmeno A/N?");

    // Tady ho musim nadefinovat, jinak mi dole za WHILE hlásí error
    PlatnaVolbaC = false;
    do
    {
        switch (Console.ReadKey().KeyChar.ToString().ToLower())
        {
            case "a":
                VolbaC = true;
                PlatnaVolbaC = true;
                Console.WriteLine();
                break;
            case "n":
                VolbaC = false;
                PlatnaVolbaC = true;
                break;
            default:
                Console.WriteLine();
                Console.WriteLine("Zadali jste neplatnou volbu, stiskněte klávesu [a] nebo [n]!");
                break;
        }
    } while (!PlatnaVolbaC);
} while (VolbaC);
 
Odpovedať
24.4.2020 16:43
Avatar
Odpovedá na Pratos Zesporaku
Radek Vymětalík:24.4.2020 18:01

Nic špatně neděláš. :) V C# musí mít proměnná před jejím použitím nadefinovanou nějakou hodnotu, jinak se kód nemůže zkompilovat. Je to vlastnost jazyka C#.

 
Odpovedať
24.4.2020 18:01
Avatar
Odpovedá na Pratos Zesporaku
Martin Olejník:7.6.2020 7:36

Nefunguje ti to, protože nemáš pokryté přiřazení true/false v defaultu u switche, tzn. když uživatel zadá něco, co neodpovídá case 1,2 tvoje řešení volá znovu vnitřní cyklus aniž by proměnná PlatnaVolbaC měla přiřazenou nějakou hodnotu, to samé platí pro vnější cyklus.

 
Odpovedať
7.6.2020 7:36
Avatar
KaMl
Člen
Avatar
KaMl:8.7.2021 9:13

Super lekce!
Příklad se sčítáním čísel a ignorováním stringu jsem si zkoušela hned sama (před přečtením řešení) a pěkně mě to nachytalo:

int cislo;
while (!int.TryParse(item, out cislo))
   continue;
soucet += cislo;

Posledně jsem se naučila dávat před TryParse while, ale v kombinaci s continue to udělá nekonečnou smyčku "continue"... :-D

 
Odpovedať
8.7.2021 9:13
Avatar
Petr Jadrníček:19.9.2021 13:22

Děkuji za článek.

 
Odpovedať
19.9.2021 13:22
Avatar
Jaroslav Drobek:31.7.2022 18:16

V prvním kódu k do...while chybí na konci středník.

 
Odpovedať
31.7.2022 18:16
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.

Zatiaľ nikto nevložil komentár - buď prvý!