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
matej.skulsky:8.1.2014 19:59

Ako mám napísať kód tak aby mi napísalo všetky čísla od 100-999 , ktoré majú po vydelení 7 zvyšok 2 ? mám začitok

for(int i=100;i<999;i++)

no a ďalej sa neviem pohnúť.

 
Odpovědět
8.1.2014 19:59
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na matej.skulsky
Jan Vargovský:8.1.2014 20:01
if(i%7 == 2)
   ...
 
Odpovědět
8.1.2014 20:01
Avatar
tomas1471000
Člen
Avatar
tomas1471000:25.1.2014 22:35

pri tvorení tej kalkulačky nad switch-om som tam pri každej podmienke ako vy to else nepoúžíval a program mi funguje tak či tak, je to chyba? ak áno prečo?

 
Odpovědět
25.1.2014 22:35
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na tomas1471000
Jan Vargovský:25.1.2014 22:45

Je to chyba. Už se to tu jednou řešilo. Když tam nedáš to else, tak program stále testuje, jestli se to nerovná 2 pak 3 pak 4... Jsou to zbytečné instrukce navíc. Takhle u == to nepoznáš, ale kdybys tam měl třeba místo toho <= tak to vykoná všechny podmínky, kdybys zadal třeba 1. Když si odkrokuješ program, poznáš to.

 
Odpovědět
25.1.2014 22:45
Avatar
Solarian
Člen
Avatar
Solarian:26.1.2014 17:52

Ahoj, nedaří sem mi napsat tu kalkulačku, už jsem to psala 3x a zkopírovala jsem ten kód z článku a pořád mi to nefunguje. Zeptá se mě to na čísla, vypíše volby a potom když chci vybrat operaci, tak to píše pořád dál(i čísla i písmena)a ukončit to jde jedině Enter a nebo křížkem. A dělá mi to i ten druhý kód se switch.

Odpovědět
26.1.2014 17:52
Hlupáci dělají stále stejné hlouposti. Ti šikovnější stále nové.
Avatar
Solarian
Člen
Avatar
Solarian:26.1.2014 18:34

Omlouvám se za nesmyslný dotaz, ono je potřeba po té volbě operace dát Enter :D:D:D
Ze mě určitě programátor nebude ;)

Odpovědět
26.1.2014 18:34
Hlupáci dělají stále stejné hlouposti. Ti šikovnější stále nové.
Avatar
Solarian
Člen
Avatar
Odpovídá na psafarcik
Solarian:31.1.2014 22:31

Ahoj, když použiju switch a mám tam několik case a na konci default. Musím napsat pod každou podmínku case co chci aby se mi vypsalo a nebo to jde napsat na jedno místo, pokud je splněná některá z podmínek?

switch (volba)
         {
             case 1:
                    vysledek = a + b;
                    Console.WriteLine("Výsledek je {0}", vysledek);
                    break;
             case 2:
                    vysledek = a - b;
                    Console.WriteLine("Výsledek je {0}", vysledek);
                    break;
             case 3:
                    vysledek = a * b;
                    Console.WriteLine("Výsledek je {0}", vysledek);
                    break;
             case 4:
                    vysledek = a / b;
                    Console.WriteLine("Výsledek je {0}", vysledek);
                    break;

             default: Console.WriteLine("Neplatná volba!");
                    break;

Jestli se to musí psát takhle, tak mi připadá, že je jednodušší použít if - jako je v článku.

Odpovědět
31.1.2014 22:31
Hlupáci dělají stále stejné hlouposti. Ti šikovnější stále nové.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Solarian
Jan Vargovský:31.1.2014 22:34

Switch ti nepovoluje zjistit jestli se udělal nějaký case nebo se zavolal default. Udělej si nějaký boolean před switchem, nastav na true a když bude default nastav mu false. Pak pod tím swichtem měj normálně

if(boolean)
Console.WriteLine("Výsledek je {0}", vysledek);
 
Odpovědět
31.1.2014 22:34
Avatar
Solarian
Člen
Avatar
Odpovídá na Jan Vargovský
Solarian:1.2.2014 1:34

Tak tady s tím bojuju už 2,5 hodiny a jediné na co jsem přišla je to že bool a boolean spolu nějak souvisí ale nebude to to samé. Nakonec jsem stvořila tohle, ale stejně to nefunguje

bool ano = ((volba == 1) && (volba == 2) && (volba == 3) && (volba == 4));
      bool ne = ((volba == 0) || (volba >= 5));

      switch (volba)
      {
          case 1:
              vysledek = a + b;
              break;
          case 2:
              vysledek = a - b;
              break;
          case 3:
              vysledek = a * b;
              break;
          case 4:
              vysledek = a / b;
              break;
          default: Console.WriteLine("Neplatná volba");
              break;
      }
            if (ano)
            Console.WriteLine("Výsledek je {0}", vysledek);
              else if (ne)
           Console.WriteLine("Neplatná volba");

když nakonec napíšu if (boolean) tak to píše, že je to typ, ale použitý jako proměnná(přeloženo v Googlu)

Odpovědět
1.2.2014 1:34
Hlupáci dělají stále stejné hlouposti. Ti šikovnější stále nové.
Avatar
petrph
Člen
Avatar
Odpovídá na Solarian
petrph:1.2.2014 8:35

Ahoj- to ti Google napsal správně. p4koo ti tím if(boolean) chtěl říct že si máš udělat proměnnou typu boolean (tu tvou ano), ne že to od něj máš natvrdo opsat:)
A konkrétně to má vypadat takhle
před switch bool ano = true; //nic víc
ve switch v sekci default už to máš napsané správně default: ano=false;
a na konci vymazat v else to "if (ne)"-ta větev else se provede automaticky když ano není true.
Ještě možná k rozdílu mezi boolean a bool.Teda-vysvětluje se to blbě. Musíš rozlišit jestli ten termín používáš ve výkladu,disku­zi,slovním popisu funkce programu a podobně. Pak používáš termín boolean (můžeš si to přeložit jako pravdivostní) čili říkáš tím že jde o nějaký výraz, který lze testovat na to zda to zda je pravdivý nebo nepravdivý-tedy cokoliv co můžeš napsat do podmínky if).
Kdežto slovo bool použiješ přímo v programu jako typ proměnné,do které si ukládáš pravdivostní informaci typu true/false -to je to tvoje
bool ano.

 
Odpovědět
1.2.2014 8:35
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.