Se întâmplă că în timpul executării programului este necesar să se implementeze un set diferit de comenzi, în funcție de ceea ce sa întâmplat înainte de acest eveniment. În limbile de programare, acest lucru se realizează prin utilizarea construcțiilor speciale - afirmații condiționale.
Cel mai adesea, ca operator condițional în limbile de programare, constructul if-else sau versiunea sa scurtă de dacă este folosită. Există, de asemenea, un operator de selecție a cazurilor. care are o aplicație mai specifică.
Instrucțiunea if-else
Când execuția ramurii principale a programului ajunge la operatorul condițional dacă-altfel, în funcție de rezultatul expresiei logice, diferite blocuri de cod sunt executate în antetul său. Dacă expresia logică revine adevărată, atunci un bloc este executat (în Pascal începe cu cuvântul), dacă este fals, atunci celălalt (începe cu cuvântul altceva). După executarea unuia dintre blocurile de cod imbricate, cursul programului revine la ramura principală. Un alt bloc imbricat nu este executat.
De exemplu, programul trebuie să determine dacă utilizatorul a introdus un număr ciudat sau par, și să afișeze un mesaj. Apoi, codul de program în Pascal poate fi:
Există forme incomplete de operatori condiționați. În acest caz, blocul de cod încorporat în instrucțiunea if este executat numai în cazul unei expresii logice adevărate a antetului. În caz de fals, execuția programului este transferată imediat la unitatea principală. Este clar că ramura altceva este absentă în acest caz.
În exemplul de mai jos, dacă variabila are o valoare mai mică decât zero, valoarea acesteia se modifică (există un modul numeric). Dacă valoarea variabilei este inițial mai mare decât zero, atunci blocul de cod cu instrucțiunea if nu este executat deloc, deoarece starea (n<0).
O condiție poate fi orice expresie, rezultatul căreia este una dintre valorile booleene - adevărată sau falsă.
Imediat după aceea, un singur operator poate sta în picioare. Dacă trebuie executați mai mulți operatori, acestea trebuie să fie închise în instrucțiunea de început a parantezelor. Un exemplu de program care modifică valorile variabilelor în locații numai dacă aceste valori sunt diferite. Blocul if conține patru expresii, deci este închis la început.
Este permisă inserarea unei singure instrucțiuni în cazul în care (sau dacă altceva) este alta. Trebuie avut grijă, adică Poate fi dificil să se determine care, dacă (exterioară sau internă) îi aparține sucursala altui domeniu. Se recomandă utilizarea constructului if if, numai în ramura else. În plus, următoarea regulă se aplică la Pascal: fiecare corespunde celui mai apropiat altceva, care nu este implicat atunci când se stabilește un meci cu altul atunci. Adâncimea cuiburilor dacă afirmațiile pot fi arbitrar de mari, dar va fi foarte greu să înțelegi un astfel de cod.
Declarația de caz (operatorul de selecție)
În plus față de instrucțiunea if, așa-numitul switch case este furnizat în limbajul de programare Pascal. Poate fi tratată ca o anumită întrebare având un număr mare de răspunsuri (și nu doar două, ca în declarația if-else). Cu toate acestea, spre deosebire de cazul în care, cazul are o serie de limitări fundamentale. Formatul său este după cum urmează:
În antetul declarației de caz, în loc de o expresie logică, există o variabilă numită selector. Înainte de aceasta, programul îi atribuie o valoare. Această variabilă poate avea doar un tip enumerat (de exemplu, nu poate fi de tip real). În timpul executării instrucțiunii caz, valoarea variabilei selector este comparată cu diferitele alternative descrise în ea (eticheta-valori). Imediat ce se găsește o potrivire, blocul de cod este executat la această etichetă, iar ramura principală a programului este ieșită. Valorile etichetelor sunt constante pe care un selector le poate accepta. Tipul și tipul selectorului trebuie să fie compatibile.
Dacă nu există potriviri, se execută alt bloc. Dacă blocul altceva nu este prezent (este opțional), atunci nu se execută nici un bloc de cod în instrucțiunea caz.
Utilizarea operatorului de selecție este supusă următoarelor restricții:
- selectorul trebuie să aibă un tip ordinal;
- fiecare alternativă trebuie să fie o constantă, o gamă, o listă de valori, dar nu o variabilă sau o expresie.