close

Für Schleife

Zur Navigation gehen Zur Suche gehen

Die for - Schleife ist eine Kontrollstruktur in der Programmierung, bei der die maximale Anzahl der Iterationen im Voraus angegeben werden kann.

Schleifenelemente

  • Kontrollvariable : Praktisch ein durch den allgemeinen Sprachgebrauch auferlegtes Gebot ist es, den Buchstaben - i - Iterator als Kontrollvariable oder seine Nachfolger im Fall von verschachtelten Schleifen zu verwenden. Die Verwendung dieses kryptischen Buchstabens, vielleicht auf den ersten Blick, ist jedoch aufgrund seiner umfangreichen Verwendung eine hervorragende Möglichkeit, den Code lesbarer zu machen. Da verschachtelte Schleifen selten drei Dimensionen überschreiten (für eine einfache Frage der exponentiellen Explosion), sind die Buchstaben i, j und k normalerweise die einzigen, die an dieser Verwendung beteiligt sind. In C wird es zusammen mit der Initialisierung (optional) im ersten Parameter der Anweisung definiert.
  • Initialisierung der Kontrollvariablen : In der Pseudosprache wird verlangt, sie explizit zu machen (es ist der Abschnitt := InitialValue ), andere freizügigere Sprachen wie C erfordern dies jedoch nicht zwingend. Die Verwendung von Steuervariablen, die nicht in der Schleife initialisiert werden, wird jedoch für die Lesbarkeit des Codes nicht empfohlen. In C wird sie zusammen mit der Kontrollvariablen im ersten Parameter der Schleife definiert.
  • Steuerbedingung: In der Pseudosprache wird sie durch den endgültigen Wert dargestellt, den die Steuervariable annehmen kann ( Abschnitt A FinalValue ). In C ist es der zweite Parameter und kann eine beliebige Bedingung sein (die Kontrollvariable ist nicht einmal erforderlich, obwohl dies wiederum nicht als gute Praxis gilt).
  • Inkrement : In der Pseudosprache wird standardmäßig der Wert 1 verwendet, obwohl dies durch den Satz PASO = ValorPaso jede ganze Zahl explizit gemacht werden kann (gut gelesen ganze Zahl, das heißt, technisch können wir dekrementieren). In C ist es der letzte Parameter.
  • Hauptteil : Es ist das, was in jeder Iteration getan wird, es kann eine oder mehrere Anweisungen sein. In der Pseudosprache gibt es die Einschränkung, den Wert der Kontrollvariablen nicht verändern zu können; Dies ist in C nicht erforderlich, wird jedoch nicht als bewährte Methode angesehen.

Verwendet

Seine Hauptverwendung orientiert sich an Vektoren , die gemäß dem Index gefundene Daten ändern, hinzufügen, löschen oder konsultieren können. Für letzteres ist eine Mindestbedingung des Vektors, dass er geordnet sein muss, denn wenn versucht wird, nicht vorhandene Daten zu lesen, erzeugt dies einen Programmierfehler .

In Pseudosprache

Der Hauptunterschied zwischen einer FOR-Schleife und WHILE AND REPEAT-Schleifen besteht darin, dass am Anfang der Schleife bestimmt werden kann, wie oft die Schleife durchlaufen wird, was häufig zu einer Codeoptimierung durch Compiler führen kann. Bedingungen bilden zusammen mit Schleifen die Säulen der strukturierten Programmierung , und ihre Verwendung ist eine Weiterentwicklung einer Anweisung in Assemblersprache , die die nächste Zeile ausführt oder nicht, abhängig vom Wert einer Bedingung.

Die FOR-Schleife ist die am weitesten verbreitete Schleife in der Programmierung geworden, da mit der Evolution der Sprachen die meisten Endbedingungen


Es ist dasselbe zu sagen:

FOR i=0 bis NumberRecords(table) - 1, STEP = 1
 NächsterDatensatz(Tabelle)
 DoSomething(CurrentItem(table))
ENDE FÜR

Eine weitere häufige Verwendung ist die Verwendung von FOR-Schleifen zum Durchlaufen von Vektoren mit zwei oder mehr Dimensionen, wobei diese Iterationen in diesem Fall verschachtelt sind.

Pseudosprache

Vektor a[3][4][2]. // Wir geben einen Vektor mit 3 Dimensionen und insgesamt 24 Elementen an.
FÜR i:= 0 BIS 2 TUN
  FÜR j:= 0 BIS 3 TUN
    FÜR k:= 0 BIS 1 TUN
      Tue etwas (a[i][j][k])
    ENDE FÜR
  ENDE FÜR
ENDE FÜR

Pseudocode- Beispiel

Für ControlVariable := StartValue TO EndValue, STEP = Increment

  Anweisungen
ENDE Für

wobei ControlVariable , StartValue , EndValue und Step Ganzzahlen sind. Die Anweisung(en) im Rumpf wird (EndValue - InitialValue + 1) mal ausgeführt, das heißt, sie geht von InitialValue bis einschließlich EndValue.

Beispiel in C++

#include <iostream>
#include <cone.h>
mit Namensraum std;

intmain(){
   int-Vektor[10];
   for(int i=0; i<10; i++){
      Vektor[i] = i;
      cout<<i<<endl;
   }  
   system("PAUSE");
   0 zurückgeben;
}

In der for -Definition haben wir, dass die Kontrollvariable i auf den Wert 0 initialisiert wird, dann wird die Kontrollbedingung, die während ihrer Ausführung falsch sein muss, gegeben, um die Schleife zu vervollständigen; und schließlich haben wir den Inkrementierer in einer Einheit.

Wenn wir beispielsweise in der Bedingung i < 11 setzen, dann wird die for-Schleife ab [0...10] ausgeführt, was beim Versuch, auf das Element vector[10] zuzugreifen, einen Fehler generiert, da die Vektor (per Definition) geht von [0..(n-1)].

Alle Komponenten in Klammern können weggelassen werden, aber die Semikolon-Trennzeichen müssen immer erscheinen. Das Ergebnis ist eine Endlosschleife.

Beispiel oben im Lexikon geschrieben

Aufgabe
{
vector[10] Objekte, i sind Mengen
variierend i von 0 bis 9 tun
         kopiere i nach vector[i]
}

Für jede Schleife

Diese Schleife ist eine Weiterentwicklung des Konzepts der For-Schleife in einigen Sprachen. Es wird verwendet, um sich wiederholende Datenstrukturen auf einfachere und agilere Weise zu durchlaufen. Die For Each-Schleife kann allgemein (in Pseudosprache) wie folgt beschrieben werden:

FÜR JEDES Element vom Typ IN setze DO
  Körper
ENDE FÜR JEDEN
  • Element : ist der Name der Variablen oder des Objekts, das das iterierte Element in den Körper der Schleife aufnimmt.
  • Datentyp : Dies ist der Variablentyp oder die Klasse, zu der das zu iterierende Objekt gehört.
  • Set : ist die Datenstruktur, über die Sie iterieren möchten. Die typischste Verwendung ist mit Vektoren oder – in der objektorientierten Programmierung – Klassen des Collection-Typs.
  • Hauptteil : Es ist das, was in jeder Iteration getan wird, es kann eine oder mehrere Anweisungen sein. Obwohl in dieser Hinsicht keine Verpflichtung auferlegt wird, ist die häufigste, dass in diesem Körper eine Operation auf dem iterierten Element stattfindet.

Eine der wichtigen Eigenschaften von Computern, die ausgenutzt werden können, ist genau ihre Fähigkeit, die Ausführung von Befehlssequenzen mit hoher Geschwindigkeit und mit einem hohen Maß an Zuverlässigkeit zu wiederholen. Für diese Zwecke werden iterative Kontrollstrukturen in Programmiersprachen genau definiert. Das Ziel dieser Strukturen ist es, den Ausdruck der Wiederholung einer Folge von Anweisungen zu ermöglichen, diese Strukturen werden Zyklus, Schleife oder Schleife genannt.

Zusammenfassung 1 Iterative Kontrollstrukturen 2 Die while-Anweisung 3 Die do/while-Anweisung 4 Die for-Kontrollstruktur 5 Fallstudie 5.1 GCF() 5.2 QtyDigits() 5.3 Factorial() 6 Verschachtelte Schleifen 7 Quellen Iterative Kontrollstrukturen im Leben Täglich, Es gibt Situationen, die häufig gelöst werden, indem eine bestimmte Abfolge von Schritten ausgeführt wird, die viele Male wiederholt werden können, zum Beispiel:

Der Prozess, dem wir folgen, um zu essen, während das Essen noch nicht fertig ist. Der Vorgang des Einwerfens von Münzen, bis der erforderliche Betrag bezahlt ist. Die Operationen, die wir durchführen, um telefonisch anzurufen, während die Kommunikation nicht erreicht wird. Wie zu sehen ist, handelt es sich um Algorithmen, die täglich ausgeführt werden, aber sie haben die Besonderheit, dass die Ausführung einiger ihrer Schritte viele Male wiederholt werden kann, solange das gesetzte Ziel nicht erreicht wird. Diese Art von Algorithmus ist als iterativer oder repetitiver Algorithmus bekannt. In C# können Sie mit den Anweisungen while, do/while und for Iterationen, Schleifen oder Zyklen ausführen. In jedem Fall wird ein Block von Anweisungen ausgeführt, während die ausgewertete Bedingung wahr ist. Es wird hervorgehoben, dass jede der 3 Anweisungen dasselbe Ziel erfüllt, nämlich eine Schrittfolge mehr als einmal auszuführen.

Die While-Anweisung Die While-Anweisung hat die folgende Syntax:

WhileStatement.JPG

Die Semantik der Anweisung ist wie folgt:

<Bedingung>. Er wird durch einen booleschen Ausdruck dargestellt und solange er erfüllt ist, wird der Zyklus ausgeführt. [Anweisungsblock] Der Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen und ist der Satz von Schritten, die in jeder Iteration des Zyklus ausgeführt werden. Zum besseren Verständnis ist seine Darstellung in einem Aktivitätsdiagramm dargestellt.

DiagrammWhile.JPG

Diese Kontrollstruktur ermöglicht das Wiederholen oder Iterieren des [Anweisungsblocks], während die Bedingung wahr ist, oder mit anderen Worten, diese Iterationen enden, wenn die Bedingung falsch ist, und dann kann die nächste Anweisung nach Ablauf der Zeit ausgeführt werden.

Es ist wichtig, darauf hinzuweisen, dass in dieser Anweisung die Bedingung zu Beginn des Zyklus ausgewertet wird. Wenn die Bedingung also beim ersten Mal falsch ausgewertet wird, wird der Zyklus nicht ausgeführt.

Die do/while-Anweisung Die do/while-Kontrollstruktur ist eine weitere Iterationsanweisung, in der die Bedingung zum ersten Mal ausgewertet wird, nachdem der [Anweisungsblock] ausgeführt wurde, und hat die folgende Syntax:

DoWhileStatement.JPG

Seine Semantik ist die gleiche wie die der while-Anweisung und seine Darstellung in einem Aktivitätsdiagramm ist wie folgt:

DiagrammDoWhile.JPG

Bei dieser repetitiven Struktur wird der Anweisungsblock immer mindestens einmal ausgeführt, da die Bedingung zuletzt ausgewertet wird. Sobald die Auswertung durchgeführt wurde, wird der [Anweisungsblock] erneut ausgeführt, wenn das Ergebnis wahr ist, andernfalls werden die folgenden Anweisungen ausgeführt und der Zyklus verlassen. Die Funktionalität dieser Methode ist die gleiche wie im while-Beispiel. Der einzige Unterschied besteht in der Art und Weise, wie die Schleife gesteuert wird. In der Praxis werden Sie feststellen, dass die while-Anweisung häufiger verwendet wird als die do – while-Anweisung. Die Wahl einer Anweisung gegenüber der anderen ist eine persönliche Entscheidung. Ein sehr wichtiger Aspekt, der bei bedingten Schleifen zu beachten ist, ist die Notwendigkeit, mindestens einen Anweisungsblock innerhalb des Anweisungsblocks zu betrachten, der in gewisser Weise – irgendwann – das Ergebnis des booleschen Ausdrucks verändert. Die Erklärung ergibt sich einfach aus der Tatsache, dass diese Anweisung, wenn sie beim Eintritt in die Schleife nicht vorhanden wäre, niemals enden würde, also in eine Endlosschleife fallen würde.

Die Kontrollstruktur für Die bisher gesehenen iterativen Prozesse enden mit einer Bedingung. In vielen Situationen werden die Iterationen eine bestimmte Anzahl von Malen durchgeführt, viele Autoren nennen sie Zyklen durch Zählen, weil im Voraus bekannt ist, wie oft der Vorgang wiederholt wird. Bei dieser Art von Iteration wird immer eine Variable benötigt, um zu verfolgen, wie oft der Vorgang wiederholt wird, weshalb sie auch als Zyklen mit einer Kontrollvariablen bezeichnet werden. Einer der bekanntesten und am häufigsten verwendeten Zyklen in den meisten Programmiersprachen ist die for-Anweisung, die normalerweise von einem Zähler oder einer Steuervariablen gesteuert wird und die folgende Syntax hat:

AnleitungFor.JPG

Die Semantik der Anweisung ist wie folgt:

<Anweisungen 1>. Es wird nur einmal zu Beginn des Zyklus ausgeführt, Initialisierungen und Variablendeklarationen werden normalerweise durchgeführt, da es, wie zuvor erwähnt, nur einmal ausgeführt wird. Wenn Sie zu diesem Zeitpunkt mehr als eine Anweisung ausführen oder ausführen möchten, müssen diese Anweisungen durch Kommas (".") getrennt werden. <Ausdruck>. Er wird bei jeder Iteration ausgewertet und hängt von dem zurückgegebenen Wert davon ab, ob der Zyklus mit der Ausführung fortfährt (Wert des Ausdrucks wahr) oder nicht (falsch). Beachten Sie, dass, wenn nichts in diesen Teil eingefügt wird, der Zyklus den Wert des Ausdrucks als wahr annimmt, sodass der Zyklus im Prinzip unendlich wiederholt werden kann. <Anweisungen 2>. Sie wird immer in jedem Zyklus am Ende der Ausführung aller Anweisungen ausgeführt, die zu der betreffenden for-Schleife gehören. Es kann normalerweise einige Aktualisierungen für die Steuervariablen enthalten. Analog zu <instructions 1> müssen, wenn Sie mehr als eine Anweisung gleichzeitig ausführen wollen, diese durch Kommas getrennt werden. Beachten Sie, dass es zwingend erforderlich ist, jeden Begriff, aus dem die for-Anweisung besteht, durch ein Semikolon (;) zu trennen, andernfalls zeigt der Compiler einen semantischen Typfehler an. Wiederholen Sie, dass <Anweisung 1> nur einmal am Anfang ausgeführt wird, dass <Anweisung 2> diejenige ist, die im Allgemeinen verwendet wird, um die Steuervariable zu ändern, obwohl sie auch in der Schleife geändert werden kann, und dass <Ausdruck> die Garantie ist die Endlichkeit des Zyklus, for wird ausgeführt, solange <Ausdruck> ausgewertet wird und den Wert wahr annimmt.

Siehe auch

Referenzen

Externe Links