NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

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
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.

 
Odpovědět
1.3.2020 1:17
Avatar
 
Odpovědět
1.3.2020 1:42
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.

 
Odpovědět
4.3.2020 0:24
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.

 
Odpovědět
22.3.2020 10:06
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á.

 
Odpovědět
13.6.2020 9:25
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

 
Odpovědět
17.6.2020 7:47
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
 
Odpovědět
17.6.2020 9:26
Avatar
Savi
Člen
Avatar
Odpovídá na Alesh
Savi:17.6.2020 13:48

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

 
Odpovědět
17.6.2020 13:48
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)):
 
Odpovědět
30.6.2020 19:25
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.