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
Slepice1
Neregistrovaný
Avatar
Slepice1:1.3.2013 17:32

Taky možné řešení:
Jena mám problém s tím že když dám 'N' tak mi to normálně vypíše poděkování a můžu to ukončit. Ale když dám 'A' nenapíše se mi "Zadej první číslo:" hned, ale musím ho potvrdit jakýmkoliv tlačitkem.

Console.WriteLine("Kalkulačka 1.0");
           bool opakovani1 = true;

           while (opakovani1 == true)
           {
               Console.WriteLine("Napiš první číslo:");
               float vstup1;
               while (!float.TryParse(Console.ReadLine(), out vstup1))
                   Console.WriteLine("Napsali jste špatné číslo!");
               Console.WriteLine("Napiš druhé číslo:");
               float vstup2;
               while (!float.TryParse(Console.ReadLine(), out vstup2))
                   Console.WriteLine("Napsal jsi špatné číslo!");
               Console.WriteLine("Vyber si operaci:");
               Console.WriteLine("Sčítání stiskni: +");
               Console.WriteLine("Odčítání stiskni: -");
               Console.WriteLine("Násobení stiskni: *");
               Console.WriteLine("Dělení stiskni: /");
               bool opakovani2 = true;
               float vysledek = 0;
               while (opakovani2 == true)

              {
                   char a = Console.ReadKey().KeyChar;

                   opakovani2 = false;
                   switch (a)
                   {
                       case '+':
                           vysledek = vstup1 + vstup2;
                           break;
                       case '-':
                           vysledek = vstup1 - vstup2;
                           break;
                       case '*':
                           vysledek = vstup1 * vstup2;
                           break;
                       case '/':
                           vysledek = vstup1 / vstup2;
                           break;
                       default: opakovani2 = true;
                           Console.WriteLine();
                           Console.WriteLine("Špatné zadání! Opakuj:");
                           break;
                   }
               }
               Console.WriteLine();
               Console.WriteLine("Výsledek: " + vysledek);
               bool platneZadani = false;
               while (!platneZadani)
               {
                   Console.WriteLine("Pokud chceš počítat znovu stiskni A pokud ne stiskni N");
                   char konec = Console.ReadKey().KeyChar;

                   switch (konec)
                   {
                       case 'a':
                           opakovani1 = true;
                           platneZadani = true;
                           Console.WriteLine();
                           break;
                       case 'n':
                           opakovani1 = false;
                           platneZadani = true;
                           Console.WriteLine();
                           Console.WriteLine("Děkuji za použití kalkulačky, aplikaci ukončíte stiskem jakéhokoliv tlačítka.");
                           break;
                       default:
                           platneZadani = false;
                           Console.WriteLine("Špatná klávesa!");

                           break;
                   }
               }

               Console.ReadKey();
 
Odpovědět
1.3.2013 17:32
Avatar
terror569
Člen
Avatar
terror569:4.4.2013 23:29

zatim to bylo dobry, ale ted jsem se ztratil uz od bool platnaVolba = true; az dolu

 
Odpovědět
4.4.2013 23:29
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na terror569
David Hartinger:5.4.2013 8:53

platnaVolba je proměnná typu bool, nabývá hodnot true (prava) nebo false (nepravda). Slouží k uložení toho, zda je volba platná či nikoli. Nejprve se předpokládá, že je platná, pokud je zadáno něco jiného, ve větvi default se do ní uloží false. V článku je to samozřejmě vysvětlené hned podtím.

Editováno 5.4.2013 8:54
Odpovědět
5.4.2013 8:53
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:5.4.2013 9:01

Protože máš na konci Console.ReadKey(); Uprav to třeba takhle:

...
    case 'n':
        opakovani1 = false;
        platneZadani = true;
        Console.WriteLine();
        Console.WriteLine("Děkuji za použití kalkulačky, aplikaci ukončíte stiskem jakéhokoliv tlačítka.");
        Console.ReadKey();
        break;
...

A ten ReadKey() dole vymaž.

Odpovědět
5.4.2013 9:01
New kid back on the block with a R.I.P
Avatar
terror569
Člen
Avatar
terror569:7.4.2013 20:16

jo uz to chapu. Prave ze se to nechci ucit jak to rict.. z pameti ale abych vedet co, kde se dela. diky za radu (:

 
Odpovědět
7.4.2013 20:16
Avatar
matej.skulsky:1.7.2013 13:13

Perčo si písal stále...Conso­le.WriteLine("Ne­platná voľba...."), keď si si mohol dofinovať napr. string zle ... Console.Write­Line(zle , "")

 
Odpovědět
1.7.2013 13:13
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na matej.skulsky
Juraj Mlich:1.7.2013 13:16

Načo? Takto je to prehľadnejšie :)

 
Odpovědět
1.7.2013 13:16
Avatar
Petr Čech
Tvůrce
Avatar
Petr Čech:10.7.2013 10:17

Dá se nějak udělat, aby se zjistilo, jestli uživatel stisknul nějakou klávesu za daný časový úsek, a nečekalo by se na to? Myslím něco jako char key=Console.Re­adKey().KeyChar; aniž by se na to čekalo.

Odpovědět
10.7.2013 10:17
the cake is a lie
Avatar
Odpovídá na Petr Čech
Luboš Běhounek Satik:10.7.2013 10:39

Pokud mas spusteny nejaky cyklus, tak v nem muzes volat winapi metodu GetKeyState a kontrolovat stav klaves.

http://msdn.microsoft.com/…S.85%29.aspx

Odpovědět
10.7.2013 10:39
https://www.facebook.com/peasantsandcastles/
Avatar
done
Člen
Avatar
done:27.10.2013 17:01

Tyto tutoriály k C# .NET jsou opravdu dobře udělané. Nejdříve teorie a poté praktická zkouška a cvičení. Opravdu super práce :)

 
Odpovědět
27.10.2013 17:01
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.