Programujeme ve Visual Basic .NET - 9. díl - smyčka s čítačem

Diskuze čtenářů k článku

Marek  |  18. 10. 2004 07:53  | 

Vite nekdo jestli pro "syntax sugar" prekladac generuje optimalizovanejsi (rychlejsi) kod?
Dalsi dotaz k cyklum: Pokud beh programu dospeje k cyklu For...Next , tak se naplni promena citace (Incr) a promena hranice (iMax). Probiha cyklus.. ale co kdyz se zmeni za behu promena hranice (iMax)? Ma to vliv na cyklus? nebo uz se promena netestuje?
 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petrik, Petrik  |  18. 10. 2004 11:40  | 

Podle mě bude odpověď na obě otázky záporná, např. přiřazení i  = i + xxx generuje stejnou MSIL instrukci jako i += xxx (ldc.i4.s xxx)
Hodnoty výrazů Start, Stop, popř. Step se v cyklu For - Next vyhodnocují při prvním průchodu smyčkou.
Můžete je sice měnit, dokonce i nastavit na Nothing -  ale změny pak již nemají vliv na průběh kódu smyčkou.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Marek  |  19. 10. 2004 07:08  | 

Jeste me napada, ze v clanku mohla byt zminka ze cykly se daji nucene prerusit prikazem Exit For (Exit Loop atp.). S tim ale souvisi otazka, zda se toto "vylepseni" cyklu doporucuje, nebo ne. Mam na mysli nachylnost k nebezpecnym skokum v programu ("dlouhe" adresy jumpu).
 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petrik, Petrik  |  19. 10. 2004 10:22  | 

O Exit For i o jeho nejčastějším použití jsem se v článku zmínil, ale děkuji za připomínku. Je jasné, že každá výjimka z pravidel strukturovaného programování jako předčasné opuštění smyčky (nebo samotné použití IF) zvětšuje složitost programu.
Ale pokud použijete smyčku s čítačem pro kontrolu dosažitelného počtu kroků, je to čistší způsob, než použití smyčky Do..Loop kontrolovat dosažený počet cyklů zvláštní proměnnou a dodatečnou podmínkou IF. Právě proto jsem v této souvislosti Exit For uvedl.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Novka  |  20. 10. 2004 17:54  | 

Potřeboval bych pomoct se zokrouhlováním čísel ve VB.NET. Pordíte mi někdo příkaz? Díky

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petrik, Petrik  |  20. 10. 2004 18:52  | 

Zdravím - zaokrouhlování čísel na daný počet míst nabízí třída System.Math .

Napište si do svého VB.NET editoru  (SnippetCompiler, SharpDevelop nebo Visual Studio .NET)  výraz
 System.Math. (s tečkou na konci) a prostudujte si funkce, které nabízí.
 

 
Module modMain
   Sub Main
     Const PI = System.Math.Pi
     System.Console.WriteLine(System.Math.Round(Pi, 2))
   End Sub
 End Module

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor