HALLOWEEN JE TADY: Získej 66 % extra kreditů zdarma při nákupu od 1199 kreditů s promo kódem NEBOJSEIT66. Zjisti více:
NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:

Diskuze – Lekce 6 - Podmínky (větvení) 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
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Marek Vajčner:1.3.2020 1:17

Také chci vyjádřit svůj dík. Hlavně za ty příklady kódu. Jsou jasné a srozumitelné. Díky.

Avatar
David
Člen
Avatar
David:4.3.2020 0:24

Ahoj. Zjišťoval jsem rozdíl mezi relačními operátory a logickými operátory. Relační operátory slouží k porovnávání dvou hodnot – nejčastěji se jedná o číselné hodnoty. Logické operátory pracují s operandy jako s logickými, tedy pravdivostními hodnotami true (pravda) a false (nepravda). Podle těchto definic by obecná negace patřila do logických operátorů, protože pracuje s pravdivostními hodnotami. Např: !(false). Děkuji.

Avatar
Robin Blažek:22.3.2020 10:06

Ahoj, díky moc za další parádní článek. S takovými podklady je doslova radost se C# učit.

Avatar
Martin Košař:13.6.2020 9:25

díky moc za lekce! Učím se doma, od nuly a tohle mi moc pomáhá.

Avatar
Savi
Člen
Avatar
Savi:17.6.2020 7:47

Ahoj,

při opakování lekce jsem měl v kódu toto:

while (odpoved != "ano" || odpoved != "ne")
                {
                    Console.WriteLine("zadej odpoved jeste jednou: ");
                    odpoved = Console.ReadLine();
                }

ale to nefungovalo.

Fungovalo to až jako:

while (odpoved != "ano" && odpoved != "ne")
                {
                    Console.WriteLine("zadej odpoved jeste jednou: ");
                    odpoved = Console.ReadLine();
                }

Proč nefunguje ta první možnost ? Jde to nějak slovně popsat? Děkuji

Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Savi
Alesh:17.6.2020 9:26

Tak jde vlastně o negaci složených výroků, viz např. http://www.mocz.pecos.cz/…-vyroku.html
Začněme od situace, kdybys chtěl opak, tj. podmínku, že odpověď je "ano" nebo je "ne":

while (odpoved == "ano" || odpoved == "ne")

Jasné, že? Ty ji potřebuješ ale celou znegovat:

while (!(odpoved == "ano" || odpoved == "ne"))

Furt jasné, viď? Dokud odpověď není ("ano" nebo "ne").
A teď se mrkni do toho odkazu:
A∨B negujeme: ¬(A ∨ B), což je ekvivalentní ¬A ∧ ¬B, čili předešlý kód lze zapsat i tak, jak jsi to nakonec vyzkoumal ty sám :-):

while (odpoved != "ano" && odpoved != "ne")

Dokud odpověď není "ano" a není ani "ne".
Čeština je v tomto poněkud matoucí, však si všimni jak oproti angličtině nelogicky tvoříme zápory.

Editováno 17.6.2020 9:27
Avatar
Savi
Člen
Avatar
Odpovídá na Alesh
Savi:17.6.2020 13:48

Děkuji za super vysvětlení ! :-)

Avatar
Bohumír Bednařík:30.6.2020 19:25

V článku mi chybí uvedení konstrukce switch/case takové, ve které by bylo možné otestovat více hodnot najednou. Uvedu příklad: Budu mít cyklus o 100 průchodech a chci řešit různé výstupy pro intervaly od 0 do 10, od 11 do 20, atd. Přece nebudu vypisovat všechny hodnoty stylem:

case 0:
case 1:
case 2:
atd.

Jsem úplný začátečník v C#. Ve VB bych to napsal zhruba jako:

case 0 to 10:
case 11 to 20:
atd.

Jak na to? Našel jsem si řešení následujícího typu, ale nevím, jestli je to tak správně:

case int j when ((j>0) && (j<11)):
Nejnovější komentáře jsou na konci poslední stránky.
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 172.