PC Laborator 6
Obiective
La sfârșitul acestui laborator studenții vor fi capabili:
- să înțeleagă funcționarea blocurilor repetitive;
- să conceapă programe care folosesc blocuri repetitive.
Structura repetitivă
Structura repetitivă, cunoscută și sub numele de loop sau buclă, reprezintă o bucată de cod care poate fi executată în mod repetat. Structurile repetitive trebuie sa aibă o condiție de continuare. La fiecare iterație a codului această condiție este verificată, iar în momentul în care condiția devine falsă se oprește execuția buclei și se trece mai departe în program. Există 2 tipuri de structuri repetitive:
- structuri repetitive cu număr cunoscut de pași;
- structuri repetitive cu număr necunoscut de pași.
Structuri repetitive cu număr cunoscut de pași
Instrucțiunea for creează o structură repetitivă cu număr cunoscut de pași. Sintaxa instrucțiunii for este următoarea:
a)
for (inițializare contor; condiție logică; modificare contor)
instrucțiune;
b)
for (inițializare contor; condiție logică; modificare contor){
instrucțiune1;
instrucțiune2;
..............................
}
Instrucțiunea for se parcurge conform schemei următoare:
Exemplu
Ce va afisa acest program?
#include<stdio.h>
int main(){
int x;
for (x = 0; x < 10; x++) {
printf("%d\n", x);
}
return 0;
}
Structuri repetitive cu număr necunoscut de pași
Există două instrucțiuni pentru a crea structuri repetitive cu număr necunoscut de pași:
- instrucțiunea while;
- instrucțiunea do..while;
Instrucțiunea while
Instrucțiunea while verifică înainte de fiecare iterație condiția de intrare: dacă această condiție este îndeplinită se execută codul din corpul instrucțiunii, iar dacă nu se îndeplinește condiția se iese din această buclă. Sintaxa instrucțiunii este următoarea:
a)
while (condiție)
instrucțiune;
b)
while (condiție){
instrucțiune1;
instrucțiune2;
..............................
}
Organigrama instrucțiunii while se regăsește în imaginea următoare:
Exemplu
Ce va afișa următorul cod în urma execuției?
#include<stdio.h>
int main(){
int x = 0;
while (x < 10){
printf("%d\n", x);
x++;
}
return 0;
}
Instrucțiunea do while
Instrucțiunea do while verifică după fiecare iterație condiția de continuare. Sintaxa instrucțiunii "do while este următoarea:
a)
do{
instrucțiune;
}while (condiție);
b)
do{
instrucțiune1;
instrucțiune2;
..............................
}while (condiție);
- indiferent de numărul de instrucțiuni din cadrul structurii repetitive, se folosesc acoladele;
- după condiția de continuitate se folosește obligatoriu semnul de punctuație ; .
Organigrama instrucțiunii while se regăsește în imaginea următoare:
Exemplu
Ce se va afișa în urma execuției?
#include<stdio.h>
int main(){
int x;
x = 0;
do{
printf( "Hello, world!\n" );
}while (x != 0);
return 0;
}
Cuvintele cheie break și continue
Pentru structurile repetitive există două cuvinte cheie de mare importanță: break și continue.
break va ieși din bucla cea mai apropiată indiferent de condițiile de continuare ale acesteia. Utilitatea acestei instrucțiuni apare atunci când trebuie părăsită bucla în anumite circumstanțe.
continue oprește iterația curentă, face update contorului (în cazul buclei for) și continuă cu execuția structurii repetitive de la prima instrucțiune. Cu alte cuvinte, continue ignoră tot ceea ce urmează după el în cadrul buclei și trece la următoarea iterație a buclei.