002
19.07.2010, 01:14 Uhr
Hans
Library Walker (Operator)
|
Hi,
nach diesen Ausführungen über Endlosschleifen, noch mal zum einfacheren Teil: Schleifen sind einfach ein Sprachkonstrukt für Widerholungen. Nehmen wir an, Du willst ein paar 100 Datensätze nach irgendwas durchsuchen. Dann besteht die uneffektive Lösung darin, den Code zum Durchsuchen für jeden Datensatz extra zu schreiben. Bei genau 100 Datensätzen wäre es 100 mal der selbe Code. Wenn es mehr Datensätze sind entsprechend noch mal der Code, eben für jeden Datensatz. - Und wenn Du jetzt fragst, ob das nicht auch einfacher geht, dann heisst die Antwort: Ja, mit Schleifen. Dann schreibst Du den Code genau einmal, und wiederholst ihn solange, bis Du gefunden hast, was Du suchst. Dann hörst Du auf. Diese Konstruktion nennt man Schleife. Das ganze lässt sich auch für andere Dinge verwenden, beispielsweise um Speicher mit bestimmten Werten zu belegen, sehr beliebt ist dabei der Wert Null. Ein Beispiel, hier in C:
C++: |
#include <stdio.h> #include <stdlib.h>
int main() { int i, // Schleifenzähler data[100]; /* Array mit 100 Elementen, in diesem Fall ein Speicher- bereich für 100 ganze Zahlen */
for (i=0; i<100; i++) // Schleife, die 100 mal durchläuft und dabei data[i] = 0; // alle Elemente auf 0 setzt
for (i=0; i<100; i++) // Schleife, die 100 mal durchläuft und dabei data[i] = rand(); // jedem Element einen zufälligen Wert zuweist
for (i=1; i<=100; i++) // Schleife, die 100 mal durchläuft und dabei { printf("%d, ", data[i] ); // den Wert ausgibt if ((i%10)==0) // Wenn i ohne Rest durch 10 teilbar ist, d.h. wenn // 10 Zahlen ausgegeben wurden, dann zusätzlich printf ("\n"); // einen Zeilenumbruch ausgeben } // Schleifenende
return 0; // "Programm erfolgreich abgeschlossen" ans Betriebssystem melden } // main
|
Und noch mal das gleiche in C++
C++: |
#include <iostream> #include <cstdlib>
using namespace std;
int main() { int i, // Schleifenzähler data[100]; /* Array mit 100 Elementen, in diesem Fall ein Speicher- bereich für 100 ganze Zahlen */
for (i=0; i<100; i++) // Schleife, die 100 mal durchläuft und dabei data[i] = 0; // alle Elemente auf 0 setzt
for (i=0; i<100; i++) // Schleife, die 100 mal durchläuft und dabei data[i] = rand(); // jedem Element einen zufälligen Wert zuweist
for (i=1; i<=100; i++) // Schleife, die 100 mal durchläuft und dabei { cout << data[i] << ", " ; // den Wert ausgibt if ((i%10)==0) // Wenn i ohne Rest durch 10 teilbar ist, d.h. wenn // 10 Zahlen ausgegeben wurden, dann zusätzlich cout << endl ; // einen Zeilenumbruch ausgeben } // Schleifenende
return 0; // "Programm erfolgreich abgeschlossen" ans Betriebssystem melden } // main
|
Die Unterschliede liegen abgesehen von der using-Zeile nur bei den #Include-Dateien und den Anweisungen zur Ausgabe der Zahlen.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |