Príkaz break
Stáva sa vám, že ste v nejakom cykle a ak nastane nejaká udalosť, tak je najvhodnejšie vystúpiť z cyklu skôr, než samotný cyklus skončí. Na urýchlený odchod z cyklu využijeme príkaz break.
1. príklad: Použitie príkazu break
#include <iostream> // hlavičkový súbor using namespace std; // priestor mien int main() // hlavná funkcia { int cislo1 = 5; // deklarácie premenných int vysledok = 25; int iteracia = 0; cout << "Som program, ktory ukaze, kolko krat treba vynasobit cislo "<<cislo1<<" samo sebou, aby vysledok dosiahol hodnoty povedzme 1000.\n"; // výstup na obrazovku for (int i = 2; i < 1000; i++) // cyklus { vysledok = vysledok * cislo1; if (vysledok >= 1000) { iteracia = i; break; // využitie príkazu break } } cout << "Na hodnotu 1000 som musel iterovat minimalne "<<iteracia<<" krat.\n"; return 0; // koniec programu }
Výsledok programu:
Som program, ktory ukaze, kolko krat treba vynasobit cislo 5 samo sebou, aby vysledok dosiahol hodnoty povedzme 1000. Na hodnotu 1000 som musel iterovat minimalne 4 krat.
Rozbor programu:
Ak sa pozriete na program, tak zistíte, že sa podobá na úlohu s mocninami. Narozdiel od mocniny, teraz počítame počet iterácii násobenia čísla seba samým, pokým nedosiahne hodnotu 1000.
Takže, začíname číslom 5. Vynásobíme ho seba samým, čiže výsledok je 25 a počet iterácii je 1.
V druhej iterácii vyjde z 25 * 5 = 125.
V tretej iterácii máme 125 * 5 = 625.
Vo štvrtej iterácii získame 625 * 5 = 3125. Po tejto iterácii bola splnená spomienka. V tele podmienky máme príkaz break. Tento príkaz spôsobí, že sa program opustí cyklus a pokračuje sa ďalej v programe.
Príkaz continue
Predstavte si, že chcete akútne niekde v cykle spýtať sa, či podmienka cyklu ešte platí. Príkaz continue to dokáže. Jeho úlohou je stopnúť ďalšie vykonávanie cyklu a na rozdiel od break, continue zabezpečí, aby sa vykonala rozhodovacia fáza cyklu. Pod rozhodovacou fázou cyklu samozrejme myslíme starý známy test podmienky cyklu.
2. príklad: Testujeme príkaz continue
#include <iostream> using namespace std; int main() { cout << "Odpocitavam!\n"; for (int i = 10; i >= 0; i--) { if (i <= 5) { cout << "Nastala chyba!\n"; continue; // využitie príkazu continue } cout << "Cas: "<<i<<"\n"; } return 0; }
Výsledok programu:
Odpocitavam! Cas: 10 Cas: 9 Cas: 8 Cas: 7 Cas: 6 Nastala chyba! Nastala chyba! Nastala chyba! Nastala chyba! Nastala chyba! Nastala chyba!
Rozbor programu:
Cyklus v programe začne odpočítavať od hodnoty 10. Akonáhle dôjde k hodnote 5, tak sa spustí podmienka s príkazom continue. To znamená, že zvyšok cyklu sa odignoruje a začne sa testovať podmienka cyklu.
3. príklad: Druhá úloha na príkaz continue
#include <iostream> using namespace std; int main() { for (int i = 1; i <= 10; i++) { if (i % 2 == 0) continue; // test, či j číslo parne a využitie príkazu continue cout << "Vysledkom nasobenia cisla "<<i<<" s cislom "<<i<<" je "<<i*i<<"\n"; } return 0; }
Výsledok programu:
Vysledkom nasobenia cisla 1 s cislom 1 je 1 Vysledkom nasobenia cisla 3 s cislom 3 je 9 Vysledkom nasobenia cisla 5 s cislom 5 je 25 Vysledkom nasobenia cisla 7 s cislom 7 je 49 Vysledkom nasobenia cisla 9 s cislom 9 je 81
Rozbor programu:
Program je nastavený s pomocou príkazu continue tak, aby len nepárne čísla boli násobené.