Jakie są zagnieżdżone pętle w C ++ z przykładami?

Jakie są zagnieżdżone pętle w C ++ z przykładami?
Po pierwsze, co to jest pętla? Pętla to konstrukt, który wykonywa instrukcje wielokrotnie, dopóki nie zostanie spełniony określony warunek. Stwierdzenia znajdują się w bloku pętli. W C ++, jeśli będzie tylko jedno stwierdzenie, które należy powtórzyć, wówczas nie będzie bloku (aparaty ortodontyczne). Jest pętla do zrobienia, pętla w pobycie i pętla. Takie konstrukty nazywane są instrukcjami złożonymi.

Pętla do zrobienia

Prosta pętla do zrobienia to:

int m = 0;
Do

Cout << m << ";
++M;
while (m<5);

Istnieje początkowy warunek, który tak naprawdę nie jest częścią pętli. Ten początkowy warunek to „int m = 0;”. Pętla zaczyna się od zarezerwowanego słowa, zrób i kończy się półkolisem, po stanie, „(m<5)”. The loop means to print out integers, beginning from zero until m is equal to 5. When m is equal to 5, no printing takes place.

W przypadku pętli do-podczas. Warunek jest spełniony, gdy M jest równe 5. Wcześniej blok jest wykonywany 5 razy, zaczynając od liczby od 0 do 4. Więc wyjście to:

0 1 2 3 4

While pętli

Z pętlą do zrobienia blok jest wykonywany za każdym razem przed sprawdzeniem warunku. Z drugiej strony, z pętlą pobytu, warunek jest sprawdzany najpierw, za każdym razem, przed wykonaniem bloku. Poniższa pętla while robi to, co zrobił powyższa pętla:

int m = 0;
While (m<5)

Cout << m << ";
++M;

Istnieje początkowy warunek, który tak naprawdę nie jest częścią pętli. Ten początkowy warunek to „int m = 0;”. Pętla zaczyna się od zastrzeżonego słowa i kończy się na drugim i zamykającym klamrze dla jego bloku. Nie ma tutaj słowa „zrób”. Warunkiem jest „(m<5)”, same as in the above code. When the while-condition is false, that is, m equals 5, the block is not executed, and that is the end of the loop. Note that the loop does not end with a semicolon in this case. The output is the same as in the previous code, that is:

0 1 2 3 4

dla pętli

W powyższej pętli występują pięć głównych elementów. Pierwszy to instrukcja inicjalizacji,

int m = 0;

Powtórzenie wykonania bloku pętli odbywa się dla 5 liczb, poczynając od M wynosi zero. Następnym składnikiem jest warunek while (m<5). No repetition (no execution of the block) occurs when the while condition results in false. The third component is the loop compound statement itself, which can be imagined as the block. The fourth component is inside the loop compound statement. It is:

Cout << m << ";

Drukuje wartość m. A piąty składnik jest instrukcją przyrostu,

++M;

Który jest w bloku, na końcu. Powoduje to powtórzenie wykonania bloku. Wprowadza następny numer do powtarzania bloku. Jednak powtórzenie nie nastąpi, jeśli warunek WHO powoduje fałszywe.

Różne pięć komponentów można zmienić w pętli w następujący sposób:

dla (int m = 0; m<5; ++m)

Cout << m << ";

Wyjście jest takie samo, i.mi.

0 1 2 3 4

Istnieją trzy stwierdzenia w nawiasach For pętka: istnieje instrukcja inicjalizacji, istnieje warunek, który jest krótkim stwierdzeniem, i istnieje instrukcja przyrostowa. W bloku, tym razem, istnieje tylko jedno stwierdzenie, które jest podstawowym stwierdzeniem. Oświadczenie przyrostowe, które znajdowało się w bloku, zostało pobrane w nawiasach. Więcej stwierdzeń można dodać do dowolnego z powyższych bloków.

Pętla do zrobienia i pętla while są zasadniczo takie same jak na pętlę. For pętka umieszcza pętlę w klasycznej i uproszczonej formie. Każda pętla wymaga stanu inicjalizacji, warunków, a warunki i kodu, aby spowodować następne powtórzenie, które nie nastąpi, gdy warunek, w którym spowoduje fałszywe.

Podczas gniazdowania pętli należy wziąć pod uwagę te trzy cechy. Ten artykuł wyjaśnia różne sposoby gniazdowania pętli w C++. Podstawowe formularze pętli zostały wyjaśnione powyżej.

Treść artykułu

  • Gniazdowanie pętli
  • Gniazdowanie pętli podczas pobytu
  • Gniazdowanie pętli
  • Wniosek

Gniazdowanie pętli

Z następującego programu wyświetlana jest tabela 5 wierszy i 4 kolumn znaków. W C ++ sekwencja wielkich liter lub sekwencja małych liter można porównać jako liczby całkowitego, jak pokazano w następującej zagnieżdżonej pętli:

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int i = 0;
char j = „a”;
Do

Do

Cout << j << ";
J ++;
while (j < 'E');
j = „a”;
Cout << endl;
i ++;
podczas gdy ja < 5);
powrót 0;

Wyjście to:

A B C D
A B C D
A B C D
A B C D
A B C D

Pierwsza wiersz programu zawiera bibliotekę iostream w programie. Ta biblioteka jest niezbędna do drukowania tekstu. Następny wiersz jest instrukcją, upewniając się, że każda użyta nazwa pochodzi ze standardowej przestrzeni nazw.

Pomocne jest pomylenie o zagnieżdżonej pętli w dwóch wymiarach. Obie pętle działają na każdej komórce. Wewnętrzna pętla jest odpowiedzialna za kolumny, podczas gdy pętla zewnętrzna jest odpowiedzialna za wiersze.

Wygląda to tak: podczas gdy zewnętrzna pętla wskazuje do pierwszego rzędu, wewnętrzna pętla drukuje jedną wartość komórki na kolumnę dla pierwszego rzędu. Podczas gdy zewnętrzna pętla wskazuje do drugiego rzędu, wewnętrzna pętla drukuje jedną wartość komórki na kolumnę dla drugiego rzędu. To trwa do momentu wydrukowania ostatniego rzędu.

W powyższym programie stan inicjalizacji dla zewnętrznej pętli jest,

int i = 0;

Stan inicjalizacji pętli wewnętrznej to,

char j = „a”;

Zauważ, że cała pętla wewnętrzna została umieszczona tuż po otwierającym klamrze zewnętrznej pętli. Tylko jedno stwierdzenie drukuje każdą postać, a to stwierdzenie musi znajdować się w wewnętrznej pętli. Jest tak, ponieważ pętle uzyskują dostęp do jednej komórki na połączoną iterację. Oświadczenie to:

Cout << j << ";

Alfabet wielkimi może być obsługiwany jak liczby całkowite (liczby całkowite dodatnie).

Warunki pobytu dla wewnętrznej pętli jest,

While (j < 'E')

Na końcu wewnętrznego rdzenia pętli, ale nie na końcu kodu pętli wewnętrznej. Oznacza to, że piąta litera „e” i nie można wyświetlić. Po wyświetlaniu 4 elementów z rzędu stan początkowy jest zresetowany lub ponownie inicjowany z instrukcją,

j = „a”;

który nie jest poprzedzony zarezerwowanym słowem, Char. Poprzedzając go zarezerwowanym słowem, Char ogłosi nową zmienną, która nie będzie częścią dwuwymiarowej iteracji. Po tym stwierdzenie, ja.mi.

Cout << endl;

zmusza kursor ekranu do następnego wiersza, aby następny wiersz można było wydrukować w następnym wierszu.

Po tym stwierdzeniu rozpoczyna się niezbędny kod pętli zewnętrznej. Warunki pobytu dla zewnętrznej pętli jest,

(I < 5)

co oznacza, że ​​wiersze są liczone jako 0, 1, 2, 3, 4, wciąż pięć liczb.

Kod dla wewnętrznej pętli, który powoduje drukowanie następnego znaku (powtórzenie kolumny) w tym samym rzędzie, wynosi:

J ++;

Gdy warunek pobytu dla wewnętrznej pętli powoduje fałszywe, nie jest drukowane dalsze postacie. Kod zewnętrznej pętli, który powoduje drukowanie następnego wiersza (powtórzenie wiersza) to:

i ++;

Gdy warunek White dla pętli zewnętrznej powoduje fałszywe, nie jest drukowany dalszy rząd.

I tak zmienna została użyta do pętli zewnętrznej, wierszy; a zmienna J została użyta do wewnętrznej pętli, znaków linii.

Gniazdowanie pętli podczas pobytu

Poniższy program robi to samo, co powyższy program:

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int i = 0;
char j = „a”;
podczas gdy ja < 5)

While (j < 'E')

Cout << j << ";
J ++;
;
j = „a”;
Cout << endl;
i ++;
;
powrót 0;

Wyjście to:

A B C D
A B C D
A B C D
A B C D
A B C D

Algorytm tego kodu jest prawie taki sam jak w poprzednim. Główną różnicą jest to, że tutaj dla każdej iteracji dla wewnętrznej lub zewnętrznej pętli, warunek, który jest sprawdzany przed wykonaniem ciała pętli. W poprzednim kodzie ciało jest wykonywane przed sprawdzeniem warunku,.

Gniazdowanie pętli

Poniższy program robi to samo, co powyższy program:

#włączać
za pomocą przestrzeni nazw Std;
int main ()

dla (int i = 0; i < 5; i++)

for (char j = 'a'; j < 'E'; j++)

Cout << j << ";

Cout << endl;

powrót 0;

Wyjście to:

A B C D
A B C D
A B C D
A B C D
A B C D

Są tutaj pewne rzeczy: zagnieżdżona na pętli jest krótsza niż ich inne odpowiedniki. Oświadczenie przyrostowe dla pętli wewnętrznej zostało usunięte z jego ciała i wzięte do nawiasów dla jego pętli. Oświadczenie przyrostowe dla zewnętrznej pętli zostało usunięte z jego ciała i wzięte do nawiasów dla jego pętli. Ponowna inicjalizacja (resetowanie) zmiennej pętli wewnętrznej, J nie jest już potrzebne jako stwierdzenie dla pętli zewnętrznej; ponieważ instrukcja inicjalizacji dla wewnętrznej formy pętli ponownie się zinstytucjonuje dla każdej iteracji zewnętrznej pętli.

Nie zapominaj, że za pętla jest klasyczną i uproszczoną formą pozostałych dwóch pętli.

Wniosek

Pętla ma trzy ważne cechy: stan inicjalizacji, warunek while i pchanie do następnego powtórzenia ciała pętli. Gdy jedna pętla zostanie zagnieżdżona w drugiej, te trzy cechy należy wziąć pod uwagę dla każdej z odpowiednich pętli. Wszystkie wyżej zagrożone pętle to jednopoziomowe pętle gniazdowe. Pomocne jest myślenie o jednym poziomie gniazda, pętli, jako o dwuwymiarowym układzie. Kod zagnieżdżonej pętli jest tym, co uzyskuje dostęp do każdej komórki dla układu 2D. Ten samouczek dał czytelnikowi podstawy gniazdowania pętli.