In deze tutorial zullen we met behulp van voorbeelden leren over de continue instructie en het werken met lussen.
Bij computerprogrammering wordt de continue
instructie gebruikt om de huidige iteratie van de lus over te slaan en gaat de besturing van het programma naar de volgende iteratie.
De syntaxis van de continue
instructie is:
continue;
Voordat u de continue verklaring leert kennen, moet u op de hoogte zijn van:
- C ++ voor lus
- C ++ als… anders
- C ++ while-lus
Werking van C ++ vervolg Statement
Werking van continue verklaring in C ++Voorbeeld 1: ga verder met for lus
Slaat in een for
lus continue
de huidige iteratie over en de besturingsstroom springt naar de update
uitdrukking.
// program to print the value of i #include using namespace std; int main() ( for (int i = 1; i <= 5; i++) ( // condition to continue if (i == 3) ( continue; ) cout << i << endl; ) return 0; )
Uitvoer
1 2 4 5
In het bovenstaande programma hebben we de for
lus gebruikt om de waarde van i in elke iteratie af te drukken. Let hier op de code,
if (i == 3) ( continue; )
Dit betekent
- Als i gelijk is aan
3
,continue
slaat de instructie de huidige iteratie over en start de volgende iteratie - Dan word ik
4
, en decondition
wordt opnieuw geëvalueerd. - Vandaar,
4
en5
worden afgedrukt in de volgende twee iteraties.
Opmerking : de continue
verklaring wordt bijna altijd gebruikt bij besluitvormingsverklaringen.
Opmerking : de break
instructie beëindigt de lus volledig. De continue
instructie slaat echter alleen de huidige iteratie over.
Voorbeeld 2: ga verder met while-lus
Slaat in een while
lus continue
de huidige iteratie over en de besturingsstroom van het programma springt terug naar de while
condition
.
// program to calculate positive numbers till 50 only // if the user enters a negative number, // that number is skipped from the calculation // negative number -> loop terminate // numbers above 50 -> skip iteration #include using namespace std; int main() ( int sum = 0; int number = 0; while (number>= 0) ( // add all positive numbers sum += number; // take input from the user cout <> number; // continue condition if (number> 50) ( cout << "The number is greater than 50 and won't be calculated." << endl; number = 0; // the value of number is made 0 again continue; ) ) // display the sum cout << "The sum is " << sum << endl; return 0; )
Uitvoer
Voer een getal in: 12 Voer een getal in: 0 Voer een getal in: 2 Voer een getal in: 30 Voer een getal in: 50 Voer een getal in: 56 Het getal is groter dan 50 en wordt niet berekend. Voer een getal in: 5 Voer een getal in: -3 De som is 99
In het bovenstaande programma voert de gebruiker een nummer in. De while
lus wordt gebruikt om de totale som van door de gebruiker ingevoerde positieve getallen af te drukken, zolang de ingevoerde getallen niet groter zijn dan 50
.
Let op het gebruik van de continue
verklaring.
if (number> 50)( continue; )
- Wanneer de gebruiker een getal invoert dat groter is dan
50
,continue
slaat de instructie de huidige iteratie over. Vervolgens de besturingsstroom van het programma naar hetcondition
van dewhile
loop. - Als de gebruiker een getal kleiner dan
0
invoert, wordt de lus beëindigd.
Opmerking : de continue
instructie werkt op dezelfde manier voor de do… while
loops.
ga verder met de geneste lus
Wanneer continue
wordt gebruikt met geneste lussen, wordt de huidige iteratie van de binnenste lus overgeslagen. Bijvoorbeeld,
// using continue statement inside // nested for loop #include using namespace std; int main() ( int number; int sum = 0; // nested for loops // first loop for (int i = 1; i <= 3; i++) ( // second loop for (int j = 1; j <= 3; j++) ( if (j == 2) ( continue; ) cout << "i = " << i << ", j = " << j << endl; ) ) return 0; )
Uitvoer
ik = 1, j = 1 ik = 1, j = 3 ik = 2, j = 1 ik = 2, j = 3 ik = 3, j = 1 ik = 3, j = 3
In het bovenstaande programma, wanneer de continue
instructie wordt uitgevoerd, wordt de huidige iteratie in de binnenste lus overgeslagen. En de besturing van het programma gaat naar de update-uitdrukking van de binnenste lus.
Daarom wordt de waarde van j = 2 nooit weergegeven in de uitvoer.