NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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 8 - Ošetření uživatelských vstupů v C# .NET

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
Patrik Pastor:28.12.2018 20:33

Vysvětlí mi prosím někdo, proč tu proměnou "platnaVolba" vyrušil?
resp. proč napsal pro pokračování
"platnaVolba = false"?
Nemohu si vytvorřit vlastní bool proměnu (napr. "bool dalsipriklad = true")?
Jaký to má význam?

 
Odpovědět
28.12.2018 20:33
Avatar
Odpovídá na Patrik Pastor
Neaktivní uživatel:28.12.2018 22:04

<code>platnaVol­ba</code> určuje, zda byl zadán očekávaný vstup. <code>dalsiPri­klad</code> tam sice není, ale máme za něj náhradu <code>pokraco­vat</code>.

Odpovědět
28.12.2018 22:04
Neaktivní uživatelský účet
Avatar
Patrik Pastor:28.12.2018 23:06

vim, ze je promena pokracovat, ale nerozumim, proc se pred cyklem while (platnaVolba) dava: platnaVolba = false. jinymi slovy, proč se to neguje? proč nezůstane prostě platnaVolba = true?

 
Odpovědět
28.12.2018 23:06
Avatar
Odpovídá na Patrik Pastor
Neaktivní uživatel:28.12.2018 23:20

Šlo by to vyřešit i tak, že to dáš až do default a použiješ do-while namísto while. Je to tam vlastně na to, aby se cyklus vykonal aspoň jednou.

Odpovědět
28.12.2018 23:20
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Patrik Pastor:29.12.2018 0:12

Můžu se prosím jenom zeptat, zda bys mi nenapsal na fb - mam na to dotazy a zajimá mě to, tak bych byl vděčný. Jde o to, že si myslím, že rozumím proměnné bool - (true/false), ale přímo v tomto příkladě kalkulačky nevidím ten rámec odkud kam se to cykluje (resp. jak to řídí právě ta proměna true/false). Mohu si to snad vysvětlit tak, že když je ta proměnná false - negace - tak to ten cyklus vyhodi?(shodi) Nebo jak si mam tu proměnnou platnaVolba vysvětlit?
Byl bych rád, kdybys popřípadně napsal mi na ten fb, zde je odkaz:

https://www.facebook.com/…pasta.pastor

 
Odpovědět
29.12.2018 0:12
Avatar
Odpovídá na Patrik Pastor
Neaktivní uživatel:29.12.2018 10:40
// pokud je true, zadáváš pořád další a další příklady
bool pokracovat = true;
while (pokracovat)
{
    // ...
    // pokud je false, musíš zadat vstup znovu. Hodnota je přiřazena už teď, protože cyklus musí proběhnout alespoň jednou.
    platnaVolba = false;
    // všimni si vykřičníku
    while (!platnaVolba)
    {
        switch (Console.ReadKey().KeyChar.ToString().ToLower())
        {
            case "a":
                // zadal jsi platný vstup, znovu už jej zadávat nemusíš. Rozhodl ses, že chceš zadat další příklad.
                pokracovat = true;
                platnaVolba = true;
            break;
            case "n":
                // zadal jsi platný vstup (...). Rozhodl ses, že tohle byl poslední příklad.
                pokracovat = false;
                platnaVolba = true;
            break;
            default:
                // neočekávaný vstup, musíš zadat znovu
                Console.WriteLine("Neplatná volba, zadejte prosím a/n");
            break;
        }
        // zde se přejde na začátek cyklu a znovu se vyhodnotí podmínka
    }
    // zde se přejde na začátek cyklu celé kalkulačky a znovu se vyhodnotí podmínka
}

Na fb ti napsat nemůžu, takže kdyžtak soukromé zprávy zde.

Odpovědět
29.12.2018 10:40
Neaktivní uživatelský účet
Avatar
Martin Karel :12.2.2019 18:52

Prosím vás, potřebuji poradit. Napsal jsem program v konzolové aplikaci, uložil ho a zavřel. Když jsem ho znovu otevřel, šla spustit pouze konzolová aplikace, ale místo příkazů mám ve VS pouze bílou plochu. Nevíte co s tím?

 
Odpovědět
12.2.2019 18:52
Avatar
Odpovídá na Martin Karel
Martin Karel :12.2.2019 19:02

Tak už jsem na to přišel. Jen jsem přes své oči neviděl.

 
Odpovědět
12.2.2019 19:02
Avatar
Filip Dvořáček :9.3.2019 8:49

Ahoj,
můžu se prosím zeptat, proč je v tomto kódu před float vykřičník?

while (!float.TryParse(Console.ReadLine(), out a))
    Console.WriteLine("Neplatné číslo, zadejte prosím znovu:");

Děkuji za odpověď
Filip Dvořáček

 
Odpovědět
9.3.2019 8:49
Avatar
Odpovídá na Filip Dvořáček
Neaktivní uživatel:9.3.2019 10:00

Vykřičníkem zneguješ hodnotu. <code>float.Try­Parse</code> vrací, zda se převod povedl, nebo ne. Jenomže ty chceš zadat číslo znovu pouze v případě, že se nepovedl, ne naopak.

Odpovědět
9.3.2019 10:00
Neaktivní uživatelský účet
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 149.