PHP-lus-iteratie overslaan.

22 februari 2017 19:02 uur 19.549 keer bekeken | 2 Opmerkingen

Met loops kunt u een aantal taken automatiseren en herhalen.

Lees ook:

Maar soms kan een externe factor de werking van het programma beïnvloeden. In dergelijke gevallen kan het programma de lus afbreken, overslaan of deze externe factor negeren. Hiervoor worden de instructies break, continue en pass gebruikt.

verklaring breken

In Python kunt u met de break-instructie een lus onderbreken wanneer er een externe factor optreedt. De break-instructie moet onmiddellijk na de lus-instructie worden geplaatst (meestal na de if-instructie).

Laten we deze for-lus bekijken met een break-instructie:

getal = 0
voor getal binnen bereik(10):
getal = getal + 1
als aantal == 5:
pauze # pauze

print("Buiten lus")

In dit kleine programma heeft het variabele getal de waarde 0. Vervolgens komt er een for-instructie die de lus uitvoert als het variabele getal kleiner is dan 10.

Elke for-lus verhoogt de getalvariabele met 1 (getal = getal + 1).

De if-instructie definieert de volgende voorwaarde: als de getalvariabele gelijk is aan 5, moet de lus worden onderbroken (hier wordt break gebruikt).

De lus heeft ook een print()-instructie die elke iteratie van de for-lus wordt uitgevoerd totdat de lus wordt beëindigd (omdat deze na de break-instructie komt).

De for-lus wordt gevolgd door een andere print()-instructie, die aangeeft dat de lus is onderbroken.

Wanneer u het programma uitvoert, krijgt u het volgende resultaat:

Nummer is 1
Aantal is 2
Nummer is 3
Nummer is 4
Uit de lus

Zodra de waarde van de getalvariabele 5 bereikt, wordt de lus onderbroken door de break-instructie.

Ga door met exploitant

Met de instructie continue kunt u een deel van de lus overslaan als er een externe factor optreedt en doorgaan naar de volgende iteratie van de lus. Dat wil zeggen dat de huidige iteratie wordt onderbroken, waarna het programma terugkeert naar het begin van de lus.

De continue-instructie bevindt zich in een codeblok na de lus-instructie (meestal na de if).

Laten we teruggaan naar het vorige voorbeeld en proberen de instructie continue te gebruiken in plaats van break.

getal = 0
voor getal binnen bereik(10):
getal = getal + 1
als aantal == 5:
continue # hier is de continue-instructie
print("Getal is " + str(getal))
print("Buiten lus")

In tegenstelling tot break wordt de code bij gebruik van de continue-instructie uitgevoerd, zelfs nadat de lus is onderbroken wanneer het variabelenummer = 5.

Nummer is 1
Aantal is 2
Nummer is 3
Nummer is 4
Nummer is 6
Nummer is 7
Nummer is 8
Nummer is 9
Nummer is 10
Uit de lus

Zoals je kunt zien, bleef de lus lopen, zelfs toen de waarde van het getal 5 bereikte.

De continue-instructie kan worden gebruikt in plaats van geneste voorwaardelijke code of om een ​​lus te optimaliseren.

pass operator

Wanneer er een externe factor optreedt, elimineert de pass-instructie elke invloed van die factor op de codeverwerking. De code wordt verwerkt totdat er een break of een andere instructie verschijnt.

Net als de vorige operatoren komt pass na de lusoperator en de if-expressie.

Laten we proberen de pass-operator te gebruiken in plaats van door te gaan.

getal = 0
voor getal binnen bereik(10):
getal = getal + 1
als aantal == 5:
pass # pass hier
print("Getal is " + str(getal))
print("Buiten lus")

Dankzij de pass-instructie gaat het programma door met het verwerken van de lus en negeert het het feit dat het variabele getal tijdens een van de iteraties 5 bereikte.

De uitvoer van het programma zal er als volgt uitzien:

Nummer is 1
Aantal is 2
Nummer is 3
Nummer is 4
Nummer is 5
Nummer is 6
Nummer is 7
Nummer is 8
Nummer is 9
Nummer is 10
Uit de lus

Met de pass-operator werkt het programma alsof er geen voorwaardelijke instructies in zitten. De pass-instructie vertelt het programma om deze voorwaarde te negeren en door te gaan met draaien.

De pass-instructie kan minimale klassen creëren of fungeren als tijdelijke aanduiding bij het werken aan nieuwe code en het bouwen van algoritmen.

Conclusie

Met de instructies break, continue en pass in Python kunt u de prestaties van for- en while-lussen optimaliseren en uw code vereenvoudigen.

Tags:

De continue-instructie wordt alleen in lussen gebruikt. In de uitspraken voor , while , doe while , De instructie continue slaat de rest van de hoofdcode van de lus over en gaat door naar de volgende iteratie van de lus. Laten we eens kijken naar een stukje code met de continue-instructie.

// voorbeeld van het gebruik van de continue-operator: int count = 0; do // start van lus do while ( continue; count++; ) while (count< 10)

Kijk goed naar het bovenstaande voorbeeld en je zult zien dat do while oneindig is omdat elke iteratie van de lus resulteert in de uitvoering van de continue-instructie, die de bewerking van het verhogen van het aantal tellervariabelen overslaat en doorgaat naar de volgende iteratie van de lus. . De waarde in de count-variabele verandert dus niet, wat betekent dat de voorwaarde altijd waar zal zijn. Laten we een programma ontwikkelen met de continue-operator. Het programma moet cyclisch worden uitgevoerd. Binnen de lus is het noodzakelijk om de invoer van getallen te organiseren. Als een getal wordt ingevoerd van 0 tot en met 10, dan is het noodzakelijk om het kwadraat van dit getal af te drukken, anders kunt u met behulp van de continue operator de operator voor het kwadrateren van het kwadraat overslaan. ingevoerd nummer. Wanneer u een negatief getal invoert, verlaat u de lus.

<< "Enter number: "; cin >>in_nummer; // lees het ingevoerde getal in de in_number variabele if (in_number > 10 || in_number< 0) // если введённое число не входит в заданный интервал continue; // переход на следующую итерацию цикла do while cout << "square = " << in_number * in_number << endl; // возводим в квадрат введённое число } while (in_number >

We organiseren cycliciteit in het programma - do while . In de lus lezen we eerst het ingevoerde getal in de in_number variabele, waarna de voorwaarde in de if-instructie wordt gecontroleerd. De voorwaarde van de voorwaardelijke selectieoperator if zal waar zijn als het ingevoerde getal strikt kleiner is dan nul of strikt groter dan 10. Het gegeven interval is , het getal uit dit interval wordt gekwadrateerd. De waarheid van de voorwaarde zorgt ervoor dat de continue-instructie wordt uitgevoerd lijn 15. En de continue-instructie slaat uitspraken over lijn 16 en gaat verder met het controleren van de voortzettingsvoorwaarde van de do while-lus. De voorwaarde in de lus zal waar zijn zolang de invoergetallen strikt groter zijn dan 0. Het resultaat van het programma wordt getoond in Figuur 3.

Voer nummer in: 15 Voer nummer in: 11 Voer nummer in: 5 vierkant = 25 Voer nummer in: 9 vierkant = 81 Voer nummer in: -23 Druk op een willekeurige toets om door te gaan. . .

Figuur 3 - Doorgaan met operator in C++

Eerst zijn de getallen 15 en 11 ingevoerd; deze getallen zijn niet opgenomen in het gegeven interval en daarom is het kwadraat van deze getallen niet berekend. De getallen 5 en 9 behoren tot het gegeven interval, wat betekent dat het programma hun kwadraten moet berekenen. Wanneer een negatief getal is ingevoerd, doet u het werk terwijl het is voltooid. Laten we dit programma nu opnieuw maken, zodat we het zonder de continue-operator kunnen stellen, dat wil zeggen dat we een equivalent van de continue-operator zullen schrijven.

// continue.cpp: Definieert het toegangspunt voor de consoletoepassing. #include "stdafx.h" #include naamruimte std gebruiken; int main(int argc, char* argv) ( int in_number; // variabele om het ingevoerde getal op te slaan do ( cout<< "Enter number: "; cin >>in_nummer; // lees het ingevoerde getal in de in_number variabele if (in_number<= 10 && in_number >= 0) // als het ingevoerde getal binnen het opgegeven interval ligt //doorgaan; // ga naar de volgende iteratie van de do while cout-lus<< "square = " << in_number * in_number << endl; // возводим в квадрат введённое число } while (in_number >= 0); // zolang het ingevoerde getal groter is dan of gelijk is aan nul, zal de lus system("pause");

retour 0; ) In het equivalente programma zonder de instructie continue werd de code met één regel ingekort - uitgecommentarieerd lijn 15 . De voorwaarde van de if-voorwaardelijke selectie-instructie is gewijzigd. Lijn 16 - dit is de hoofdtekst van de if-instructie, wat betekent dat als de voorwaarde in if waar is, de instructie zal worden uitgevoerd.

lijn 16

Het is vaak handig om een ​​lus vroegtijdig te kunnen beëindigen wanneer zich bepaalde omstandigheden voordoen. De pauzeoperator biedt deze mogelijkheid. Het werkt met constructies als: while, do while, for, foreach of switch.

De break-instructie kan een optioneel numeriek argument bevatten dat aangeeft hoeveel geneste structuren moeten worden beëindigd. De standaardwaarde van het numerieke argument is 1, waarmee de huidige lus wordt beëindigd. Als een switch-instructie in een lus wordt gebruikt, verlaat break/break 1 alleen de switch-constructie.

\n"; break 1; /* Sluit alleen de switch-constructie af. */ case 10: echo "Iteratie 10; laten we uitgaan
\n"; break 2; /* Verlaat de switch-constructie en de while-lus. */ ) ) // nog een voorbeeld voor ($bar1 = -4; $bar1< 7; $bar1++) { // проверка деления на ноль if ($bar1 == 0) { echo "Выполнение остановлено: деление на ноль невозможно."; break; } echo "50/$bar1 = ",50/$bar1,"
"; } ?>

Natuurlijk zou je er soms de voorkeur aan geven om eenvoudigweg één van de iteraties van de lus over te slaan in plaats van de lus te voltooien, in welk geval dit wordt gedaan met behulp van de continue-instructie.

doorgaan

Om de verwerking van het huidige codeblok in de hoofdtekst van de lus te stoppen en door te gaan naar de volgende iteratie, kunt u de instructie continue gebruiken. Het verschilt van de break-operator doordat deze de lus niet stopt, maar eenvoudigweg naar de volgende iteratie gaat.

De continue-operator kan, net als break, een optioneel numeriek argument gebruiken, dat aangeeft op hoeveel niveaus van geneste lussen de rest van de iteratie zal worden overgeslagen. De standaardwaarde van het numerieke argument is 1, waarbij alleen de rest van de huidige lus wordt overgeslagen.

"; ga verder; ) echo "50/$bar1 = ",50/$bar1,"
"; } ?>

Houd er rekening mee dat terwijl de lus liep, de nulwaarde van de variabele $counter werd overgeslagen, maar de lus doorging met de volgende waarde.

ga naar

goto is een onvoorwaardelijke sprongoperator. Het wordt gebruikt om naar een ander gedeelte van de programmacode te springen. De plaats waar u in het programma naartoe moet, wordt aangegeven met een label (eenvoudige identificatie), gevolgd door een dubbele punt. Om verder te gaan, wordt het gewenste label na de goto-instructie geplaatst.

Een eenvoudig voorbeeld van het gebruik van de goto-instructie:

De goto-instructie heeft enkele beperkingen op het gebruik ervan. Het doellabel moet zich in hetzelfde bestand en in dezelfde context bevinden, wat betekent dat u niet buiten de grenzen van een functie of methode kunt springen, en niet binnen een ervan. Je kunt ook niet in een lus of switch-instructie springen. Maar het kan worden gebruikt om aan deze constructies (van lussen en switch-instructies) te ontsnappen. Meestal wordt de goto-instructie gebruikt in plaats van break-instructies met meerdere niveaus.

"; ) echo "na de lus - vóór de markering"; // de instructie wordt niet uitgevoerd end: echo "Na de markering"; ?>