Šioje pamokoje sužinosime apie įdėtas kilpas C ++. Mes išmoksime naudoti įdėtą programai, o ir daryti …, kol ciklas programoje.
Kitos kilpos kilpa vadinama įdėta kilpa. Paimkime pavyzdį,
Tarkime, kad norime 3 savaites perskaityti kiekvieną savaitės dieną.
Norėdami tai pasiekti, galime sukurti įdėtą kilpą, kad kartotume tris kartus (3 savaites). Kilpos viduje mes galime sukurti dar vieną kilpą, kad pakartotume 7 kartus (7 dienas). Pavyzdžiui,
Pavyzdys: įdėta į „Loop“
// C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )
Rezultatas
Savaitė: 1 diena: 1 diena: 2 diena: 3… savaitė: 2 diena: 1 diena: 2 diena: 3……
Mes galime sukurti įdėtas kilpas su while ir daryti … būdami panašiai.
Pavyzdys: šablono rodymas
// C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )
Rezultatas
* * * * * * * * * * * * * * *
Šioje programoje išorinė kilpa kartojasi nuo i == 1
iki i == rows
.
Vidinė kilpa kartojasi nuo j == 1
iki j == columns
. Vidinės kilpos viduje atspausdiname personažą '*'
.
pertrauka ir tęskite vidines įdėtas kilpas
Kai vidinės kilpos viduje naudojame pertraukos teiginį, jis nutraukia vidinę, bet ne išorinę. Pavyzdžiui,
int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) )
Rezultatas
Savaitė: 1 diena: 1 diena: 2 … savaitė: 2 savaitė: 3 diena: 1 diena: 2 …
Ši programa nevykdo vidinės kilpos, kai i reikšmė yra, 2
ty ji nespausdina 2-osios savaitės dienų. Tai neturi įtakos išorinei kilpai, kuri spausdina savaites.
Panašiai, kai vidinės kilpos viduje naudojame tęsinį, jis praleidžia tik dabartinę vidinės kilpos iteraciją. Išorinė kilpa neturi įtakos. Pavyzdžiui,
int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j%2 != 0) ( continue; ) cout << " Day:" << j << endl; ) )
Rezultatas
Savaitė: 1 diena: 2 diena: 4 diena: 6 savaitė: 2 diena: 2 diena: 4 diena: 6 savaitė: 3 diena: 2 diena: 4 diena: 6
Ši programa spausdina tik tas dienas, kurios yra lygios.
Kai dienų_savaitė yra nelyginė, continue
teiginys praleidžia tą vidinės kilpos iteraciją.