Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
54
ROZDZIAŁ5.INSTRUKCJESTERUJĄCEPRZEBIEGIEMPROGRAMU
5.5Sterowaniepętlamibreakicontinue
Wsytuacji,gdydogodnejestprzerwaniewykonywaniapętliwmiejscuinnymniżna
jejpoczątkulubkońcu,możnaposłużyćsięinstrukcjąsterującąbreak.Powoduje
onanatychmiastowewyjściezpętliwhile,forido.Jeślikilkapętlijestzagnież-
dżonychwewnątrzsiebie,wyjściedotyczytylkonajbardziejwewnętrznejzpętli.
Podobniedoinstrukcjibreakdziałainstrukcjacontinue,przyczymtaostania
niepowodujeopuszczeniapętli,leczwymuszajejnastępnąiterację.Wprzypadku
pętliwhileidooznaczatonatychmiastoweponownesprawdzeniewyrażenia(wa-
runku),wprzypadkuzaśpętliforwykonywanejestwyr3(zwykleinkrementacja
lubdekrementacjalicznikapętli),anastępniesprawdzaniewarunku.
5.6
Instrukcjaskoku
Wbardzorzadkichsytuacjachkoniecznościnatychmiastowegoprzejściadowykony-
waniainnejczęścikodujęzykCudostępniainstrukcjęskokugotoorazodpowiedni
zapisetykiet,doktórychmożnanskoczyć”.Należyjednakpodkreślić,żeczęstewy-
korzystywanieskokówprowadzidosłabejczytelnościkoduinienależydodobrych
praktykprogramistycznych.Programzwielomainstrukcjamiskokunajczęściejnie
możebyćtakżedobrzezoptymalizowany.
Jednązsytuacji,gdyzastosowanieskokumożebyćuzasadnione,jestkoniecz-
nośćawaryjnegoopuszczeniabardzozagnieżdżonejpętli,jakwponiższymprzykła-
dzie:
for(...)
for(...)
for(...){
...
if(blad){
gotonaprawa;
}
}
...
naprawa:
//Kodnaprawybłędu
Takizapiskodujestprzydatnyzwłaszczawtedy,gdykodnnaprawybłędu”jest
długi,amiejsc,wktórychmożeonwystąpić,jestwewnątrzpętlikilka.Niemniej
jednakzawszeistniejemożliwośćzapisutakiegokodubezużyciaskoku(np.zwy-
korzystaniemflag).
Etykiety,któreumieszczasięprzeddowolnymiinstrukcjamijęzykaC,podlegają
takimsamymwymaganiomjaknazwyzmiennych.Poetykieciezawszeumieszcza
sięznakdwukropka.Zasięgetykietytocałafunkcja,wktórejetykietazostałazde-
finiowana.