Příkaz break
Někdy není potřeba, aby cyklus proběhl celý. Když něco hledáte a najdete to, nemá smysl hledat dál. Příkaz break (přerušit) cyklus okamžitě ukončí a program pokračuje kódem za cyklem. Příkaz break už znáte z příkazu switch: tam ukončí switch, v cyklu ukončí cyklus.
Najděme první číslo od 100 výš, které je dělitelné sedmi. Cyklus vypisuje každé číslo, které kontroluje, abyste viděli, kde se zastaví:
for (int cislo = 100; cislo < 200; cislo++) {
printf("Kontroluji %d\n", cislo);
if (cislo % 7 == 0) {
printf("První násobek 7: %d\n", cislo);
break;
}
}
printf("Hotovo\n");Kontroluji 100
Kontroluji 101
Kontroluji 102
Kontroluji 103
Kontroluji 104
Kontroluji 105
První násobek 7: 105
HotovoPodmínka cislo % 7 == 0 platí, když je zbytek po dělení sedmi 0. Když cyklus dojde ke 105, podmínka platí. Program vypíše výsledek a break cyklus ukončí: čísla od 106 dál se už vůbec nekontrolují a program pokračuje řádkem, který vypisuje Hotovo. Bez break by cyklus běžel až do 199 a vypsal by všech 14 násobků sedmi, ne jen ten první.
break budete skoro vždy psát do bloku if. Sám o sobě by cyklus ukončil hned při prvním průchodu. break funguje stejně v cyklech while i for.
Často také potřebujete za cyklem vědět, co jste našli. Pak si to uložte do proměnné vytvořené před cyklem. Které je nejmenší celé číslo, jehož druhá mocnina je větší než 500?
int nalezeno = 0;
for (int n = 1; n <= 100; n++) {
if (n * n > 500) {
nalezeno = n;
break;
}
}
printf("Nejmenší: %d\n", nalezeno);
printf("Jeho druhá mocnina: %d\n", nalezeno * nalezeno);Nejmenší: 23
Jeho druhá mocnina: 52922 * 22 je 484, a to nestačí, ale 23 * 23 je 529. Díky break zůstane v proměnné nalezeno první dost velké číslo. Bez break by cyklus pokračoval, uložil by i všechna větší čísla a v proměnné nalezeno by nakonec bylo 100.
Jak psát:
Pokyny
Ve hře máte 200 mincí a každý den získáte dalších 50. Šetříte na meč, který stojí 590 mincí. Cyklus v editoru vypisuje, kolik mincí budete mít v každém z příštích 14 dní. Do cyklu pod řádek, který vypisuje mince, přidejte if, který vypíše Den 8: můžete koupit meč! (s číslem dne), když máte alespoň 590 mincí. Spusťte program: zpráva se vypíše u každého dne od osmého dál, vy ale chcete znát jen ten první.
Do bloku if za výpis přidejte break, aby se cyklus zastavil v první den, kdy si meč můžete koupit. Teď výpis končí řádky Den 8: 600 mincí a Den 8: můžete koupit meč!.
Začněte programovat zdarma
7/11