Gestionarea ciclurilor în delphi, delphi, delphi components, delphi sources

Gestionarea ciclurilor în Delphi

În acest exemplu, se începe o buclă în care variabila i se va schimba de la -3 la 3. La fiecare pas, 10 este împărțit la valoarea lui i și rezultatul în variabila r este salvată.

Atunci când se împarte, se folosește funcția rotundă, care rotunjește valoarea trecută. Ca valoare inițială, îi trecem rezultatul împărțirii lui 10 cu variabila i, adică rotund (io / i). Astfel, rotunjitul la întregul rezultat al împărțirii va fi scris în variabila r.

Următorul pas este să adăugați rezultatul în ListBox1, în timp ce convertiți variabila r la un șir în același timp.

Să vedem ce se întâmplă atunci când variabila i este 0. În acest caz, numărul 10 va fi divizibil cu 0, ceea ce înseamnă că va apărea o eroare, deoarece 0 nu poate fi împărțită. Cum să ieșim din această situație? Puteți verifica valoarea lui i în fiecare etapă a buclei și dacă este 0, atunci nu faceți nimic. Două soluții posibile sunt listate în listă:

procedura TForml.CalculateButt # 111; nclick (Expeditor: TObj ect); var

începe pentru i: = - 3 - 3 face

începe 11 Acesta este începutul pentru dacă pentru i<>0 atunci

începe // Acesta este începutul instrucțiunii if

ListBoxi.Items.Add (40 / '+ IntToStr (i) +' = '+ IntToStr (r)); end; // Acest sfarsit pentru instructiunea if end; // Acest sfarsit pentru instructiunea pentru sfarsit;

În acest exemplu, valoarea lui i este verificată în fiecare etapă, iar dacă nu este 0, atunci numai în acest caz sunt efectuate calculele.

Aceasta este o soluție foarte simplă pentru programele mici și simple. Dar dacă ciclul dvs. este mare și efectuează multe acțiuni, atunci o astfel de soluție va fi cel puțin incomod și "lizibilitatea" codului poate fi pierdută. În cel mai rău caz, nu poate funcționa deloc. Aici operatorul continuă vine la salvare.

procedura TFormi.CalculateButt # 111; nclick (Expeditor: TObj ect); var

i, r: Integer; începe pentru i: = - 3 - 3 face

începe / / Acesta este începutul instrucțiunii pentru dacă 1 = 0 atunci

începe / ./ Acesta este începutul instrucțiunii if

ListBoxi.Items.Add ("Nu poți împărți cu zero");

Continuă; end; // Acest sfarsit pentru instructiunea if

ListBoxi.Items.Add ('10 / '+ IntToStr (i) +' = „VlntToStr (r)); se încheie; // Acest sfarsit pentru instructiunea pentru sfarsit;


Gestionarea ciclurilor în delphi, delphi, delphi components, delphi sources

În acest exemplu, verificăm și valoarea variabilei i în fiecare etapă. Dacă este zero, se emite un mesaj în ListBox1 care indică faptul că nu se poate diviza la zero și se execută instrucțiunea continuă. De îndată ce programul întâlnește un astfel de operator, acesta întrerupe imediat execuția ulterioară a buclei și trece la pasul următor. Acest lucru este același lucru cu executarea comenzii "Opriți executarea ulterioară a programului,

măriți valoarea variabilei i și porniți buclă cu următoarea valoare ".

De îndată ce programul întâlnește o instrucțiune continuă, el sare până la sfârșitul bucla, unde crește valoarea contorului (în acest caz, variabila i) și continuă executarea din pasul următor.

În Fig. Se afișează formularul cu rezultatul exemplului nostru.

Folosirea continuă cu buclă pentru este destul de convenabilă și sigură, spre deosebire de CICLURI DIN ÎN TIMPUL sau de repetare. până la. Să examinăm următorul exemplu:

în timp ce i<3 do begin if i=0 then continue;

Când executați instrucțiunea continuă în buclă. asigurați-vă că schimbătorul controlează. În acest caz a fost necesar să se efectueze următorul control:

dacă i = 0 atunci începe i: = i + l; continua; se încheie;

În acest caz, înainte ca etapa ciclului să fie întreruptă, valoarea variabilei i este incrementată cu una, ceea ce înseamnă că în etapa următoare nu va mai fi zero.

Acum, să ne uităm la declarația de pauză. Imediat ce programul întâlnește un astfel de operator, bucla este întreruptă și execuția este transferată operatorului următor după instrucțiunea buclă. Să luăm exemplul nostru precedent și să-l înlocuim În el continuă să se spargă:

procedura TForml.CalculateButt # 111; nclick (Expeditor: TObj ect); var

i, r: Integer; începe pentru i: = - 3 - 3 face

începe / / Acesta este începutul instrucțiunii pentru dacă 1 = 0 atunci

începe // Acesta este începutul pentru instrucțiunea if ListBoxl.Items.Add ('Nu poți împărți zero'); pauză;

end; // Acest sfarsit pentru instructiunea if: r: = rotund (10 / i);

ListBoxl.Iterns.Add ('10 / '+ IntToStr (i) +' = '+ IntToStr (r)); se încheie; // Acest capăt pentru instrucțiunea pentru ListBox1.Items.Add ("Calculul sa terminat"); se încheie;

În acest caz, dacă valoarea i este zero, se afișează un mesaj care indică faptul că nu se poate diviza cu zero și ciclul este întrerupt. După aceasta, controlul este transferat operatorului următor după ciclu.

După cum puteți vedea, după întâlnirea cu zero în buclă, nu se face nimic și declarația de pauză completează pur și simplu activitatea sa.

Ajutați proiectul! Spuneți prietenilor dvs. despre acest site:

Articole similare