Cosa sono i loop nidificati in C ++ con esempi?

Cosa sono i loop nidificati in C ++ con esempi?
Prima di tutto, ciò che è un ciclo? Un ciclo è un costrutto che esegue ripetutamente le istruzioni fino a quando non viene soddisfatta una condizione specificata. Le dichiarazioni sono nel blocco del ciclo. In C ++, se c'è solo un'istruzione da ripetere, allora non ci sarà un blocco (parentesi graffe). C'è il ciclo do-while, mentre loop e il per loop. Tali costrutti sono chiamati dichiarazioni composte.

Loop do-while

Un semplice ciclo do-while è:

int m = 0;
Fare

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

C'è una condizione iniziale che non fa davvero parte del ciclo. Questa condizione iniziale è "int m = 0;". Il ciclo inizia con la parola riservata, fare e termina con un punto e virgola, dopo la condizione di tempo, “(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.

Con il ciclo do-while, il blocco viene eseguito per primo, prima che la condizione venga controllata. La condizione è soddisfatta quando m è uguale a 5. Prima di allora, il blocco viene eseguito 5 volte, a partire da un conteggio da 0 a 4. Quindi l'output è:

0 1 2 3 4

While-loop

Con il ciclo do-while, il blocco viene eseguito ogni volta prima che la condizione venga controllata. D'altra parte, con l'ambiente while, la condizione viene controllata prima, ogni volta, prima che il blocco venga eseguito. Il seguente loop ha fatto ciò che ha fatto il loop di cui sopra:

int m = 0;
mentre (m<5)

cout << m << ";
++M;

C'è una condizione iniziale che non fa davvero parte del ciclo. Questa condizione iniziale è "int m = 0;". Il ciclo inizia con la parola riservata e termina al secondo e chiusura per il suo blocco. Non c'è parola riservata "fare" qui. La condizione di while è “(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

per loop

Nell'amico di cui sopra ci sono cinque componenti principali. Il primo è l'istruzione di inizializzazione,

int m = 0;

La ripetizione dell'esecuzione del blocco del loop avviene per 5 numeri, a partire da M è zero. Il componente successivo è la condizione 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 << ";

Stampa il valore di m. E il quinto componente è la dichiarazione di incremento,

++M;

Che è nel blocco, alla fine. Ciò provoca la ripetizione dell'esecuzione del blocco. Introduce il numero successivo per l'esecuzione ripetuta del blocco. Tuttavia, la ripetizione non avrà luogo se la condizione while si traduce in falso.

I diversi cinque componenti possono essere riorganizzati in un circuito per loop come segue:

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

cout << m << ";

L'output è lo stesso, i.e.

0 1 2 3 4

Esistono tre dichiarazioni tra parentesi del per loop: esiste la dichiarazione di inizializzazione, esiste la condizione while, che è una breve dichiarazione, e c'è la dichiarazione di incremento. Nel blocco, questa volta, esiste solo una dichiarazione, che è l'affermazione principale. La dichiarazione di incremento, che era nel blocco, è stata presa tra le parentesi. Altre dichiarazioni possono essere aggiunte a uno dei blocchi di cui sopra.

Il loop do-while e il ciclo while sono fondamentalmente uguali al loop per loop. Il per loop mette il loop in una forma classica e semplificata. Qualsiasi ciclo ha bisogno di uno stato di inizializzazione, una condizione di tempo e un codice per causare la ripetizione successiva, che non si verificherà quando la condizione while si traduce in falso.

Quando si annidano un ciclo, queste tre caratteristiche dovrebbero essere prese in considerazione. Questo articolo spiega diversi modi di nidificare i loop in C++. Le forme di base di base sono state spiegate sopra.

Contenuto dell'articolo

  • Nidificare i loop do-while
  • Nidificare gli amanti dei while
  • Nidificare per loops
  • Conclusione

Nidificare i loop do-while

Dal seguente programma, vengono visualizzate una tabella di 5 righe e 4 colonne di caratteri. In C ++, la sequenza di lettere maiuscole o la sequenza di lettere minuscole possono essere confrontate come vengono confrontati i numeri interi, come illustrato nel seguente ciclo nidificato:

#includere
Utilizzo dello spazio dei nomi std;
int main ()

int i = 0;
char j = 'a';
Fare

Fare

cout << j << ";
J ++;
while (j < 'E');
j = 'a';
cout << endl;
I ++;
mentre io < 5);
restituzione 0;

L'output è:

A b c d
A b c d
A b c d
A b c d
A b c d

La prima riga del programma include la libreria iostream nel programma. Questa libreria è necessaria per stampare il testo. La riga successiva è un'istruzione, assicurando che qualsiasi nome utilizzato provenga dallo spazio dei nomi standard se non diversamente indicato.

È utile pensare a un ciclo nidificato in due dimensioni. Entrambi i loop agiscono su ogni cella. Il ciclo interno è responsabile delle colonne, mentre il ciclo esterno è responsabile delle righe.

Va così: mentre il ciclo esterno punta alla prima riga, il ciclo interno stampa un valore di cella, per colonna, per la prima riga. Mentre il ciclo esterno punta alla seconda riga, il ciclo interno stampa un valore di cella, per colonna, per la seconda riga. Questo continua fino alla stampa dell'ultima riga.

Nel programma di cui sopra, lo stato di inizializzazione per il ciclo esterno è,

int i = 0;

Lo stato di inizializzazione per il ciclo interno è,

char j = 'a';

Si noti che l'intero ciclo interno è stato collocato subito dopo l'inastro di apertura del loop esterno. Solo una dichiarazione stampa ogni personaggio e questa affermazione deve essere nel ciclo interno. Questo perché i loop accedono a una cella per iterazione combinata. L'affermazione è:

cout << j << ";

L'alfabeto maiuscola può essere gestito come numeri interi (numeri interi positivi).

La condizione while per il ciclo interno è,

mentre (j < 'E')

Alla fine del core del ciclo interno, ma non alla fine del codice del ciclo interno. Ciò significa che la quinta lettera "e" e oltre non deve essere visualizzata. Dopo che il ciclo interno ha visualizzato 4 elementi di fila, lo stato iniziale viene ripristinato o richiamato con l'istruzione,

j = 'a';

che non è preceduto dalla parola riservata, char. Precedentemente con la parola riservata, Char dichiarà una nuova variabile, che non farà parte dell'iterazione bidimensionale. L'affermazione dopo, io.e.

cout << endl;

forza il cursore dello schermo nella riga successiva in modo che la riga successiva possa essere stampata sulla riga successiva.

Dopo questa affermazione, inizia il codice essenziale per il circuito esterno. La condizione di while per il ciclo esterno è,

(io < 5)

Significa che le righe sono conteggiate come 0, 1, 2, 3, 4, ancora cinque numeri.

Il codice per il ciclo interno, per causare la stampa del carattere successivo (ripetizione della colonna) nella stessa riga, è:

J ++;

Quando la condizione di while per il ciclo interno si traduce in falso, nessun altro carattere viene stampato. Il codice per il ciclo esterno per causare la stampa della riga successiva (ripetizione della linea) è:

I ++;

Quando la condizione di while per il ciclo esterno si traduce in falso, non viene stampata un'ulteriore riga.

E così, la variabile, sono stato usato per il ciclo esterno, le righe; e la variabile, J è stata utilizzata per il ciclo interno, i caratteri della linea.

Nidificare gli amanti dei while

Il seguente programma fa la stessa cosa del programma sopra:

#includere
Utilizzo dello spazio dei nomi std;
int main ()

int i = 0;
char j = 'a';
mentre io < 5)

mentre (j < 'E')

cout << j << ";
J ++;
;
j = 'a';
cout << endl;
I ++;
;
restituzione 0;

L'output è:

A b c d
A b c d
A b c d
A b c d
A b c d

L'algoritmo di questo codice è quasi lo stesso di quello precedente. La differenza principale è che, qui, per ogni iterazione per il ciclo interno o esterno, la condizione while viene verificata prima che il corpo del loop venga eseguito. Nel codice precedente, il corpo viene eseguito prima che la condizione venga verificata.

Nidificare per loops

Il seguente programma fa la stessa cosa del programma sopra:

#includere
Utilizzo dello spazio dei nomi std;
int main ()

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

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

cout << j << ";

cout << endl;

restituzione 0;

L'output è:

A b c d
A b c d
A b c d
A b c d
A b c d

Ci sono alcune cose da notare qui: il per loop nidificato è più corto di altezza rispetto alle altre controparti. La dichiarazione incrementale per il ciclo interno è stata rimossa dal suo corpo e portata tra parentesi per il suo circuito. La dichiarazione incrementale per il ciclo esterno è stata rimossa dal suo corpo e portata tra parentesi per il suo circuito. La re-iniziamento (ripristino) della variabile ad anello interno, J non è più necessaria come dichiarazione per il ciclo esterno; Perché la dichiarazione di inizializzazione per il loop interiore si reintizializza per ogni iterazione del loop esterno.

Non dimenticare che il per loop è una forma classica e semplificata degli altri due loop.

Conclusione

Un ciclo ha tre caratteristiche importanti: uno stato di inizializzazione, la condizione while e la spinta per la prossima ripetizione del corpo del loop. Quando un ciclo è nidificato in un altro, queste tre caratteristiche devono essere considerate per ciascuno dei loop corrispondenti. Tutti i loop sopra citati sono loop di nidificazione a un livello. È utile pensare a una nidificazione a un livello, di loop, come un layout bidimensionale. Il codice del ciclo nidificato è ciò che accede a ciascuna cella per il layout 2D. Questo tutorial ha dato al lettore le basi della nidificazione.