Diskuze: Dva for cykly v sobě - bez a se závorkami
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Když někam, kde se závorky normálně píší, závorky nenapíšeš, prostě si VS do nich dá jenom první příkaz. Stačí, nebo to potřebuješ podrobněji?
Takhle stačí. Jen jsem to potřeboval potvrdit. Díky moc !
Jen doplňím, že to není jen o VS. Tohle je prostě vlastnost jazyka. Složené závorky označují blok který se má vykonat. Pokud blok není, vykoná se první příkaz pouze. Takto to funguje u cyklu ale třeba i u podmínek if. A je to tak ve všech C-like jazycích.
Dalo by se všeobecně říci, že cykly a větve musí být ohraničené do bloků - procesor musí vždy přesně vědět které instrukce má provádět. V MATLABu, například, po každém ifu, foru atd. musí někde být end, který ukončí, byť i jednopříkazový, blok. V Céčku, například, máš možnost výslovné ohraničení bloku vynechat. Chybějící "značky" kompilátor doplní kolem prvního příkazu.
Je to hodně podobné matematickému zápisu násobení a sčítání. 4*A+B, respektive 4A+B, je "zkrácený" zápis a priori předpokládající, že čtyřikrát "provedeš" A až potom přidáš B. Úplný zápis by byl 4*(A)+B. Zápis 4*(A+B) je jediný možný, jak provést čtyřikrát A a B po sobě.
Důvod je jednoduchý, bez tohoto pravidla bys nikdy přesně nerozklíčoval 4a+b+c. je to 4(a)+b+c, 4(a+b)+c, nebo 4(a+b+c)?
Taky by Ti pomohlo "správné" formátování druhého příkladu. Výpis "druhý" má totiž být odsazený o jeden tabulátor méně a je tak snáz vidět, že se "první" vypíše desetkrát, potom jednou "druhý" a skočí to zpět na výpis série deseti "první" a tenhle skok zpět proběhne celkem desetkrát.
A k čemu se to používá? zkrátí to kód o dva řádky na jednom cyklu, což ho při správném formátování i zpřehlední.
Zobrazeno 5 zpráv z 5.