Opakovanie skupiny príkazov (pevný počet opakovaní)

<< Pridávanie vlastných metód - rozširovanie tried | Obsah | Opakovanie skupiny príkazov (variabilný počet opakovaní) >>

Mnohé naše doposiaľ vytvorené metódy v triede MojaKorytnacka majú tú vlastnosť, že istá skupina navlas rovnakých príkazov sa v nich niekoľko krát za sebou opakuje. Napríklad taký trojuholník:

public void trojuholnik(double dlzkaStrany) {
        this.step(dlzkaStrany);
        this.turn(120);
        this.step(dlzkaStrany);
        this.turn(120);
        this.step(dlzkaStrany);
        this.turn(120);
}

V metóde trojuholnik ľahko identifikujeme, že 6 príkazov, ktoré ju tvoria, je vlastne 3 krát zopakovaná dvojica príkazov:

this.step(dlzkaStrany);
this.turn(120);

Opakovanie je jedným z dôležitých princípov programovania. Preto aj Java ponúka (nateraz) magickú formulku, ktorou vieme zabezpečiť zopakovanie nejakej skupiny príkazov. Pozrime sa ako bude vyzerať metóda na namaľovanie trojuholníka s využitím tejto formulky.

public void trojuholnik(double dlzkaStrany) {
        for (int i = 0; i < 3; i++) {
                this.step(dlzkaStrany);
                this.turn(120);
        }
}

V tejto formulke je dôležité zapamätať si, že skupinu príkazov, ktorá sa má opakovať, píšeme medzi kučeravé zátvorky { a } tejto formulky. Ďalšia vec na zapamätanie je, že za znak < píšeme, koľko krát sa má skupina príkazov zopakovať. Vo všeobecnosti môže túto formulku zapísať takto:

for (int i = 0; i < kolkoKratSaMajuPrikazyOpakovat; i++) {
        // príkazy, ktoré sa maju opakovať
}

Pozrime sa, ako by vyzerala metóda na namaľovanie štvorca s využitím tejto opakovacej formulky:

public void stvorec(double dlzkaStrany) {
        for (int i = 0; i < 4; i++) {
                this.step(dlzkaStrany);
                this.turn(90);
        }
}

A ešte metóda pre obdĺžnik:

public void obdlznik(double sirka, double vyska) {
        for (int i = 0; i < 2; i++) {
                this.step(vyska);
                this.turn(90);
                this.step(sirka);
                this.turn(90);
        }
}

Ešte pred úplným záverom sa pozrime na metódu, ktorá namaľuje jednoduchú 12-cípu vločku s parametrom definovanou dĺžkou lúča.

public void vlocka(double dlzkaLuca) {
        for (int i = 0; i < 12; i++) {
                this.step(dlzkaLuca);
                this.step(-dlzkaLuca);
                this.turn(30);
        }
}

V príklade sme využili fintu, že ak do príkazu step dáme ako parameter záporné číslo, korytnačka bude cúvať.

Čo si treba pamätať?

  • Ak chceme zopakovať vykonanie skupiny príkazov nejaký počet krát, môžeme použiť formulku na opakovanie (nazývanú aj "príkaz for" alebo "for-cyklus"):
for (int i = 0; i < pocetOpakovani; i++) {
        // tu napíšeme príkazy, ktoré sa maju opakovať
}

<< Pridávanie vlastných metód - rozširovanie tried | Obsah | Opakovanie skupiny príkazov (variabilný počet opakovaní) >>