In questo argomento discuteremo del ciclo for basato su intervallo nel linguaggio di programmazione C++. Il linguaggio C++ ha introdotto un nuovo concetto di ciclo for basato su intervalli in C++11 e versioni successive, che è molto migliore del normale ciclo For. Un ciclo for basato su intervallo non richiede una codifica di grandi dimensioni per implementare l'iterazione del ciclo for. È un iteratore sequenziale che ripete ogni elemento del contenitore in un intervallo (dall'inizio alla fine).
Sintassi
for (range_declaration : range_expression ) loop statement
Nota: se non conosciamo il tipo di dati degli elementi contenitore, possiamo utilizzare la parola chiave auto che identifica automaticamente il tipo di dati di range_expression.
Programma per stampare ogni elemento dell'array utilizzando il ciclo for basato su intervallo
Consideriamo un esempio per stampare l'array int e double utilizzando il ciclo for basato su intervallo in C++.
programma.cpp
#include using namespace std; int main () { int arr1 [5] = { 10, 20, 30, 40, 50}; double darr [5] = { 2.4, 4.5, 1.5, 3.5, 4.0 }; // use range based for loop for ( const auto &var : arr1 ) { cout << var << ' ' ; } // use auto keyword to automatically specify the data type of darr container. for ( const auto &var : darr ) { cout << var << ' ' ; } return 0; }
Produzione
10 20 30 40 50 2.4 4.5 1.5 3.5 4.0
Programma per dimostrare il vettore nell'intervallo in base al ciclo for
Scriviamo un semplice programma per implementare il vettore nell'intervallo basato sul ciclo for.
js variabile globale
Programma2.cpp
#include #include using namespace std; int main() { int x; // declare integer variable // declare vector variable vector vect = {5, 10 , 25, 20, 25}; // display vector elements for ( int x : vect) { cout << x << ' '; } return 0; }
Produzione
5 10 25 20 25
Programma per stampare gli array utilizzando il ciclo for Range based in C++ con riferimento
Consideriamo un esempio per stampare gli elementi dell'array utilizzando il ciclo for basato su intervallo in C++.
Programma3.cpp
#include #include #include using namespace std; int main(){ array data = {1, 3, -2, 4, 6, 7, 9}; cout << ' Before updating the elements: ' << endl; for (int x : data){ cout << x << ' '; } // pass the references for (int &itemRef : data){ itemRef *= 3; } cout << endl << ' After modification of the elements: ' << endl; for (int x : data){ cout << x << ' '; } cout << endl; return 0; }
Produzione
se altrimenti se altrimenti se java
Before updating the elements: 1 3 -2 4 6 7 9 After modification of the elements: 3 9 -6 12 18 21 27
Ciclo for nidificato basato su intervallo
Quando un ciclo è definito all'interno del corpo di un altro ciclo, il ciclo viene chiamato ciclo for nidificato. Allo stesso modo, quando definiamo un intervallo in un ciclo all'interno di un altro ciclo basato su intervallo, la tecnica è nota come ciclo for nidificato basato su intervallo.
Sintassi:
for ( int x : range_expression) // outer loop { for ( int y : range_expression) // inner loop { // statement to be executed } // statement to be executed }
Nella sintassi precedente, definiamo un ciclo for basato su intervallo all'interno di un altro ciclo. Qui chiamiamo ciclo for interno ed esterno basato su intervallo in C++.
Programma per stampare il ciclo for nidificato basato su intervalli in C++
Considera un esempio per dimostrare l'intervallo nidificato basato sul ciclo for nel linguaggio di programmazione C++.
Intervallo.cpp
#include using namespace std; int main () { int arr1[4] = { 0, 1, 2, 3 }; int arr2[5] = { 1, 2, 3, 4, 5 }; // use nested range based for loop for ( int x : arr1 ) { // declare nested loop for ( int y : arr2 ) { cout << ' x = ' << x << ' and j = ' << y << endl; } } return 0; }
Produzione
x = 0 and j = 1 x = 0 and j = 2 x = 0 and j = 3 x = 0 and j = 4 x = 0 and j = 5 x = 1 and j = 1 x = 1 and j = 2 x = 1 and j = 3 x = 1 and j = 4 x = 1 and j = 5 x = 2 and j = 1 x = 2 and j = 2 x = 2 and j = 3 x = 2 and j = 4 x = 2 and j = 5 x = 3 and j = 1 x = 3 and j = 2 x = 3 and j = 3 x = 3 and j = 4 x = 3 and j = 5
Qual è la differenza tra il ciclo for tradizionale e il ciclo for basato su intervallo?
UN ciclo for tradizionale viene utilizzato per eseguire ripetutamente il blocco di codice finché la condizione specificata non è vera. Un ciclo for tradizionale ha tre parametri, l'inizializzazione della variabile, specifica la condizione e l'ultimo è il contatore che viene incrementato di uno se la condizione rimane vera.
Sintassi:
for ( variable_initialization; specify_condition; updated_counter) { // statement to be executed; }
Ciclo basato sull'intervallo
D'altra parte, abbiamo un nuovo ciclo for basato su intervallo disponibile in C++ 11 e versioni successive. Ha due parametri, la dichiarazione di intervallo e l'espressione range_. Viene anche utilizzato per eseguire ripetutamente il blocco di codice in un intervallo.
partecipazione all'aggiornamento mysql
Sintassi
for ( range_declaration : range_ expression ) { loop _statement; // statement to be executed; }
range_declaration viene utilizzato per dichiarare il tipo di variabile relativa a range_expression (contenitore). Range_expression: è proprio come un contenitore che contiene gli stessi tipi di elementi in modo sequenziale. loop_statement definisce l'istruzione che viene eseguita all'interno del ciclo for.
Vantaggi del ciclo for basato su intervallo
- È facile da usare e anche la sua sintassi è semplice.
- Un ciclo for basato su intervallo non richiede il calcolo del numero di elementi in un contenitore
- Riconosce gli elementi iniziali e finali dei contenitori.
- Possiamo facilmente modificare le dimensioni e gli elementi del contenitore.
- Non crea alcuna copia degli elementi.
- È molto più veloce del tradizionale ciclo for.
- Di solito utilizza la parola chiave auto per riconoscere il tipo di dati degli elementi contenitore.
Svantaggio del ciclo for basato su intervallo
- Non può attraversare una parte di un elenco.
- Non può essere utilizzato per attraversare in ordine inverso
- Non può essere utilizzato nei puntatori.
- Non offre l'indice degli elementi correnti.