Jak je to s těmi { závorkami? } – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak je to s těmi { závorkami? } – .NET – Fórum – Programujte.comJak je to s těmi { závorkami? } – .NET – Fórum – Programujte.com

 

Dumbo0
Newbie
21. 6. 2018   #1
-
0
-

Dostal jsem za úkol naučit se za 2 týdny C# a Javu a oproti Visual Basicu jsou všude tyhle otravné { závorky } . Sleduju k tomu třeba videa na https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169 a ten uzavírá každý byť i nejmenší blok kodu do { } . Jaká je běžná praxe? Nevěřím, že to takhle dělá většina. 

Nahlásit jako SPAM
IP: 78.102.119.–
KIIV
~ Moderátor
+43
God of flame
21. 6. 2018   #2
-
+1
-
Zajímavé

#1 Dumbo
Je to mene nachylne na chyby, pokud pouzivas blok vsude.

Napriklad mas kod jako:

if (neco)
    udelejA();
else
    udelejB();

A ted si za tyden reknes, ze by to chtelo v else vetvi jeste udelat neco dalsiho.

Tak doplnis na:

if (neco)
    udelejA();
else
    udelejB();
    udelejB2();

Ale ted se ti zahadne pousti udelejB2, ikdyz to pustilo udelejA.

Dalsi typicka chyba je:

if (neco);
    delej();

Tady uz ti blok nemusi uplne pomoci, da se to prehlednout i kdyz je tam   if (neco);{ ...

Proste pokud si zvyknes rovnou psat bloky, hrozi mensi riziko, ze je pri rozsirovani kodu zapomenes doplnit.

Nahlásit jako SPAM
IP: 89.24.50.–
Program vždy dělá to co naprogramujete, ne to co chcete...
BDS+3
Věrný člen
21. 6. 2018   #3
-
+1
-
Zajímavé

#1 Dumbo
KIIV už sice odpověděl, ale když už jsem to napsal.. (vypadl mi net)

Například budeš mít nějakou podmínku:

//pokud se podmínka splní, provede se VykonejA(), VykonejB(), ale vždy VykonejD()
if(i == j)
{
  VykonejA();
  VykonejB();
}
else
VykonejC();
VykonejD();
//pokud ne, provede se VykonejC(), ale vždy VykonejD()

pokud to uděláš takto: 

if(i == j)
{
  VykonejA();
  VykonejB();
}
else 
{
  VykonejC();
}
VykonejD();
//provede se vše jako v předchozím případě, jen to může někomu připadat přehlednější

a poslední příklad: 

//pouze pokud se podmínka splní, provede se VykonejA(), ale vždy VykonejB()
if(i == j)
  VykonejA();
VykonejB();

{} závorky jsou moc dobrá věc, a mnohem přehlednější než v jiných jazycích např. begin / end

Nahlásit jako SPAM
IP: 185.69.69.–
W10 :)
Dumbo0
Newbie
21. 6. 2018   #4
-
0
-

Super, díky za vysvětlení.

Nahlásit jako SPAM
IP: 78.102.119.–
Mutagen
~ Anonymní uživatel
549 příspěvků
22. 6. 2018   #5
-
0
-

Nechci se plíst, ale nemá náhodou VB též bloky? Akorád se zapisují

if () THEN

ELSE nebo END IF

?

Nahlásit jako SPAM
IP: 193.138.154.–
22. 6. 2018   #6
-
0
-

Ještě přidám jeden, možná trochu úsměvný, důvod: Visual Studio "našeptává" syntaxi. Je rychlejší to odklepnout než ručně vypisovat.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Kit+15
Guru
22. 6. 2018   #7
-
0
-

#5 Mutagen
Skoro každý jazyk má bloky a mívají je různě Nejjednoduší je asi ":" v Pythonu s následným odsazením, následují "{}" v C-like jazycích a pak je ještě hromada jazyků, které byly inspirovány Cobolem. Mně je to vcelku jedno, všude píši jen ":". Editor mi to následně opraví na správnou syntaxi se závorkami a odsadí.

Dávat i jeden příkaz do bloku jsem se naučil už v Pascalu a je to dobrý zvyk. Program se pak mnohem lépe čte a nenaseká se tolik chyb. Dnes už by to možná nebylo tak potřebné, protože většina editorů umí automaticky odsazovat a chyba by byla vidět, ale všechny editory to nezvládají a některé to dělají špatně.

Mnohem víc mi vadí zbytečné prázdné  řádky uvnitř metod, které čitelnost zhoršují.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:8e3:8...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý