Sunteți pe pagina 1din 1

Instrucţiunea WHILE

                        Definiţie:
Instrucţiunea WHILE este ciclul cu test iniţial care conţine o expresie booleană care controlează
execuţia repetată a altei instrucţiuni.

   Instrucţiunea WHILE are forma:                                                                        


 while <expresie> do <instrucţiune>;
unde <expresie> trebuie sa fie de tip boolean, iar <instrucţiune> poate fi orice instrucţiune Pascal , ce se
va executa atît timp cît <expresie> ia valoarea TRUE. Dacă iniţial <expresie> are valoarea false,
<instrucţiune> nu se va executa niciodată.
    Pentru o instrucţiune infinită se va folosi:                                                                                
While True Do
instrucţiune;                                                                                                                                          caz în
care nu se poate ieşi din instrucţiune din cauza condiţiei. Dacă nu exista în interiorul acestei instrucţiuni o
instrucţiune de ieşire (cum ar fi Break), atunci instrucţiunea va fi infinită (nu va mai ieşi din ea,
programul se va bloca şi va trebui terminat cu Ctrl + Break, sau şi mai rău, din Task Manager sau
reboot).

                        Principiul de execuţie:


                    se evaluează expresia logică;
                    dacă valoarea expresiei este False, se iese din instrucţiunea WHILE,dacă valoarea expresiei este
True, se execută instrucţiunea,apoi se revine la 1;
                    instrucţiunea cere execuţia repetată a unei instrucţiuni PASCAL în funcţie de valoarea de adevăr
a expresiei logice. Dacă valoarea iniţială este FALSE, instrucţiunea WHILE nu se execută nici o dată.
                    De remarcat că ieşirea din instrucţiune se va face doar cînd condiţia va returna valoarea False.
                     Instrucţiunea WHILE în limbaj natural ar suna: Cît timp condiţia_e_adevarată Fă ceva.
                        
                       Exemplu de program:

1 PROGRAM P3;
     var cnt : integer;
   begin
      cnt := 1;
      While cnt <= 20 Do
         Begin
            WriteLn(cnt);
            cnt := cnt + 1;
          End;
     ReadLn;
   
end.                                                                                                                                                              

Să analizăm programul. Prima dată am declarat o variabilă de tip integer (care poate lua valori
între -32768 şi 32767), care va fi ceea ce denumim contorul instrucţiunii. Iniţializăm contorul cu 1,
aceasta fiind prima valoare ce va trebui afişată, apoi afişăm contorul, care apoi va fi mărit cu o
unitate. Pe măsură ce avansăm, ajungem cu Cnt = 20. Atunci va fi afişat (20), contorul va creşte la
21 şi programul va reveni la condiţia de la inceputul instrucţiunii WHILE : Cnt este mai mic sau
egal cu 20. Evident, nu se mai indeplineşte condiţia , motiv pentru care se trece la executarea
următoarei instrucţiuni din program, anume ReadLn.