Denník N

Programovanie pre amatérov (časť 8)

Zdroj: Pixabay
Zdroj: Pixabay

Kurz programovania pre amatérov pokračuje svojou ôsmou časťou, kde sa naučíte používať vlastné metódy.

Budeme predpokladať, že už viete všetko z predchádzajúcej časti. Tu je jedno zo správnych riešení domácej úlohy (program, ktorý vypíše najväčšie číslo z poľa 8 čísel):
int[] numbers = { 7, 2, 8, 4, 11, 22, 0, 3};
var maxNumber = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
if (numbers[i] > maxNumber)
maxNumber = numbers[i];
}
Console.WriteLine(maxNumber);

Slovné vysvetlenie: vytvoril som si premennú maxNumber, do ktorej na začiatku priradím prvé číslo z poľa. Potom cez for cyklus prejdem všetky ostatné prvky v poli a porovnám ich s premennou maxNumber. Ak je hodnota v poli väčší, priradím ju do maxNumber. Nakoniec najväčšie číslo vypíšem.
Otázka: prečo som do maxNumber priradil prvé číslo z poľa a nie 0?
Odpoveď: pretože čísla v poli môžu byť aj záporné. Ak by boli záporné všetky, nakoniec by som vypísal číslo 0, čo by nebola pravda. Dať do premennej prvé číslo z poľa je istota. Ešte by sa to dalo obísť tým, že by sme do maxNumber priradili hodnotu Int32.MinValue, čo je vlastne najmenšia možná hodnota pre dátový typ int. Ale o tom ste ešte nevedeli, však?

Teraz sa ale poďme pozrieť na novú vec, ktorú budeme používať v programovaní. Už ste sa naučili väčšinu dôležitých vecí pre programovanie, dnes posunieme vaše znalosti ďalej. Metóda je blok kódu, ktorý sa spustí len vtedy, keď je zavolaný. Môžeme ich volať aj funkcie. Dôvod, prečo sa metódy používajú, je udržateľnosť a prehľadnosť kódu. Vo všeobecnosti platí, že najideálnejší scenár je, keď programátor nemusí nič opakovať – ak teda nejakú časť kódu píšete viackrát, je to príležitosť vyňať si ju do metódy.

Metóda má návratový typ, meno a môže mať vstupné parametre. Napríklad takto by vyzerala metóda, ktorá dostane 2 čísla a vráti menšie z nich:
public int Min(int first, int second)
{
if (first < second)
{
return first;
}
return second;
}

Kľúčové slovo public hovorí, že je metóda prístupná aj z inej triedy (vysvetlíme si neskôr, zatiaľ dávajte všetky metódy public). Ďalšie kľúčové slovo je typ, ktorý metóda vracia – v tomto prípade je to int. Ďalej nasleduje názov metódy a potom v zátvorkách vstupné parametre oddelené čiarkou. Táto metóda má parametre dva, oba sú typu intparametre musia byť pomenované. V kučeravých zátvorkách je telo metódy, v tomto prípade tam zátvorky byť musia (narozdiel od cyklu).

Kľúčové slovo return označuje koniec vykonávania metódy. V tomto prípade metóda vracia int, preto aj za slovom return musí byť nejaký int. Aby ste si to mohli u seba vyskúšať, dajte si za slovo public ešte slovo static, o dôvode vám tiež poviem trošku neskôr. A použitie je skutočne jednoduché, takto vyzerá celý kód:

Existujú aj metódy, ktoré nemajú návratovú hodnotu. Vtedy sa používa kľúčové slovo void. Používajú sa napríklad na uloženie do databázy alebo na výpis niečoho, napríklad:
public void PrintName(string name)
{
Console.WriteLine("Name is: " + name);
}

Vtedy metódu použijete bez priradenia, jednoducho takto:
PrintName("Bond");

Metódy, ktoré nemajú návratovú hodnotu, nemusia byť ukončené kľúčovým slovom return, metódy s návratovou hodnotou musia. Ak by ste chceli aj metódu bez návratového typu ukončiť skôr, stačí na to jednoduchý príkaz return;bez ďalšej premennej.

A ešte jedna vychytávočka: parametre metódy môžu mať aj defaultne nastavenú hodnotu. V tom prípade sa to zapisuje a používa takto:

To je pre dnešok všetko, myslím, že to bolo opäť raz trošku náročnejšie. Na domácu úlohu si vypracujte dve metódy: prvá vezme dve čísla (m, n) a vráti m-tú mocninu čísla n. Druhá metóda bude brať tri stringy a vráti dĺžku najdlhšieho z nich.

P.S. Tu máte veľmi skvelé video. Je to v podstate celý film Shrek, ale vždy, keď Shrek spraví krok, o 5% sa zvýši rýchlosť:

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.