Denník N

Programovanie pre amatérov (časť 5)

Zdroj: Pixabay
Zdroj: Pixabay

Piata časť série programovania pre amatérov bude prelomová – naučíte sa neskutočné bomby šupy oproti tomu, čo sme prebrali v predchádzajúcich lekciách.

Dúfam, že idete pekne po poradí, pretože nadviažeme na predchádzajúcu časť. Tam ste sa naučili logické operátory a if-else podmienky.

Je to všetko super, no zamyslime sa. Čo ak by sme dostali za úlohu vypísať, či je celočíselná premenná menšia ako nula alebo väčšia ako jedna, alebo inak napísať slovom jej hodnotu? Dá sa to spraviť aj if podmienkou, takto:
int number = 5;
if (number < 0 || number > 1)
{
Console.WriteLine("Less than zero or more than one");
}
if (number == 0)
{
Console.WriteLine("Number is zero");
}
if (number == 1)
{
Console.WriteLine("Number is one");
}

Nie je to príliš prehľadné, všakže? Ja vám ale predstavujem lepšie riešenie: použijeme switch. Je to v podstate podobné ako if-else podmienka, akurát sa porovnáva voči konkrétnym hodnotám. Zapisuje sa to takto:
int number = 5;
switch (number)
{
case 0:
Console.WriteLine("Number is two");
break;
case 1:
Console.WriteLine("Number is one");
break;
default:
Console.WriteLine("Less than zero or more than one");
break;
}

Aká je teda syntax? Vezmime si to postupne: kľúčové slovo switch hovorí, že nasleduje nejaká podmienka. To, čo nasleduje v zátvorkách, je premenná, ktorú budeme porovnávať. Jednotlivé casekonkrétne hodnoty, voči ktorým premennú porovnávame. Ak je hodnota premennej rovná hodnote pri kľúčovom slove case, vykonajú sa všetky príkazy za dvojbodkou, až pokiaľ program nenarazí na ďalšie kľúčové slovo break. To označuje koniec podmienky (break znamená, že má program vyskočiť za najbližšie kučeravé zátvorky, ešte si ho predstavíme v neskorších častiach).

Prečo je treba použiť kľúčové slovo break po každej podmienke? Pretože niekedy chceme vykonať rovnaké príkazy pre rozdielne hodnoty, napríklad takto:
int number = 1;
switch (number)
{
case 0:
case 1:
case 2:
Console.WriteLine("Between 0 and 2");
break;
case 3:
Console.WriteLine("Exactly 3");
break;
default:
Console.WriteLine("Invalid number");
break;
}

Vcelku sranda, však? Alebo vám to príde príliš ľahké? Tešíte sa zbytočne, na začiatku som nenápadne naznačil, že táto časť bude pre vás prelomová. Okrem switch podmienok sa naučíte jednu z najdôležitejších vecí na programovaní.

Pamätáte sa ešte v tretej časti na domácu úlohu? Tí poctivejší z vás ju asi spravili, no pravdepodobne bez cyklu. Úlohy boli dve: vypísať čísla od 1 do 10 (každé na novom riadku) a vypísať čísla od 1 do 10 (na jednom riadku s medzerami medzi číslami). Ideálna úloha na to, aby sme si predstavili cyklus.

Dnes si predstavíme for cyklus. Pre drvivú väčšinu programátorov by to bol prvý spôsob, ktorým by vyriešili vašu domácu úlohu. Správne riešenie prvej úlohy s for cyklom vyzerá takto:
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}

Nádherné, krátke, prehľadné. Cyklus je niečo, čo sa niekoľkokrát opakuje. Syntax for cyklu je takýto: za kľúčovým slovom for nasleduje zátvorka, kde sú 3 sekcie oddelené bodkočiarkou. V prvej je príkaz, ktorý sa vykoná jednkrátpred prvým spustením cyklu. Typicky sa tu zvykne nainicializovať premenná (platí iba pre prvý cyklus, nerobí sa pre každé opakovanie), jej meno býva obvykle i. V druhej je podmienka, ktorá ak je pravdivá, cyklus sa spustí. V poslednej sekcii je príkaz, ktorý sa vykoná po každom jednom cykle.

V našom konkrétnom prípade sme si najprv nainicializovali premennú i, ktorej sme priradili hodnotu 1 (pretože sme chceli vypísať čísla od 1). Podmienku sme si nastavili, aby i bolo menšie alebo rovné ako 10 (pretože sme chceli vypísať čísla do 10). Po každom cykle si zvýšime premennú i o 1.

Určite už viete ako spraviť aj druhú úlohu. Takto:
for (int i = 1; i <= 10; i++)
{
Console.Write(i);
Console.Write(" ");
}

Domáca úloha 1: vytvorte si premennú, ktorej priradíte číslo medzi 1 až 10. Následne vypíšte čísla od 10 do 1 okrem toho čísla, ktoré je priradené v premennej. V prípade otázok a nejasností sa na mňa neváhajte obrátiť v komentároch.

Domáca úloha 2: vypíšte párne čísla od 1 do 20.

Ďalšiu časť nájdete tu.

P.S. Dnes len inšpirácia na večeru:

Teraz najčítanejšie

Tomáš Paulďuro

Som nahnevaný občan Slovenskej republiky, pretože aj keď som sa zúčastnil protestov Za slušné Slovensko, do dnešného dňa mi neprišli od Sorosa žiadne peniaze. Okrem iného som spoluzakladateľ občianskeho združenia Vivat Vero, ktoré sa snaží spraviť zo Slovenska lepšie miesto. Naším prvým projektom je Antivýtrus, rozšírenie do webového prehliadača, ktoré užívateľa chráni pred konšpiračným a zavádzajúcim obsahom.