Schleife (Informatik): Unterschied zwischen den Versionen
 (→Arten)  | 
				|||
| (9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 12: | Zeile 12: | ||
=== while-Schleife ===  | === while-Schleife ===  | ||
Falls die   | Falls die <code>while</code>-Bedingung erfüllt sind wird die Schleife durchgelaufen und dann die <code>while</code>-Bedingung erneut geprüft. Wenn die <code>while</code>-Bedingung nicht mehr erfüllt ist, bricht die Schleife ab.  | ||
'''Beispiel 1:'''  | |||
'''  | |||
Der folgende Code gibt die Zahlen von 0 bis 99 aus:  | Der folgende Code gibt die Zahlen von 0 bis 99 aus:  | ||
<code>  |  <code>  | ||
  int i=0;  |   int i=0;  | ||
  while(i<100)  |   '''while'''(i<100)  | ||
  {  |   {  | ||
     System.out.println(i);  |      System.out.println(i);  | ||
     i+  |      i = i+1;  | ||
 }  | |||
 </code>  | |||
'''Beispiel 2:'''  | |||
Kara geht im Uhrzeigersinn um einen Wald:  | |||
 <code>  | |||
 '''while'''(!kara.onLeaf())  | |||
 {  | |||
    if(!kara.treeRight())  | |||
    {  | |||
       kara.turnRight();  | |||
    }  | |||
    if(kara.treeFront())  | |||
    {  | |||
       kara.turnLeft();  | |||
        if(kara.treeFront())  | |||
       {  | |||
          kara.turnLeft();  | |||
       }  | |||
    }  | |||
    kara.move();  | |||
  }  |   }  | ||
</code>  |  </code>  | ||
'''Wichtig''':  | |||
In der Schleife muss etwas '''verändert''' werden, damit die <code>while</code>-Bedingung irgendwann einmal erfüllt ist!  | |||
'''Best practice: '''  | '''Best practice: '''  | ||
Die Veränderung   | Die '''Veränderung''' sollte immer '''als Letztes''' in der Schleife gemacht werden!  | ||
In Beispiel 1 ist die Veränderung <code>i = i + 1</code><br>  | |||
In Beispiel 2 ist die Veränderung, dass Kara einen Schritt weitergeht.  | |||
=== do-while-Schleife ===  | === do-while-Schleife ===  | ||
TODO: Beschreibung  | TODO: Beschreibung  | ||
'''Syntax:'''  | '''Syntax:'''  | ||
Der folgende Code gibt die Zahlen von 0 bis 99 aus:  | Der folgende Code gibt die Zahlen von 0 bis 99 aus:  | ||
<code>  |  <code>  | ||
  int i=0;  |   int i=0;  | ||
  do    |   do    | ||
| Zeile 46: | Zeile 69: | ||
  }    |   }    | ||
  while (i<100);  |   while (i<100);  | ||
</code>  |  </code>  | ||
=== for-Schleife ===  | === for-Schleife ===  | ||
 <code>for</code>-Schleifen sind '''Zählschleifen'''. Sie werden verwendet, wenn etwas '''n-mal (z.B. 100-mal)''' wiederholt werden soll.  | |||
'''Beispiel 1:'''  | |||
'''  | |||
Der folgende Code gibt die Zahlen von 0 bis 99 aus:  | Der folgende Code gibt die Zahlen von 0 bis 99 aus:  | ||
<code>  |  <code>  | ||
  for(int i=0; i<100; i++)  |   for(int i=0; i<100; i++)  | ||
  {  |   {  | ||
     System.out.println(i);  |      System.out.println(i);  | ||
  }  |   }  | ||
</code>  |  </code>  | ||
'''Erläuterung:'''  | |||
Die <code>for-</code> Schleife hat in der Klammer immer drei Teile, die durch Semikolons ('''<code>;</code>''') getrennt werden.  | |||
# im '''ersten''' Teil wird eine '''Zählvariable deklariert''' und mit einem Startwert initalisiert.<br>Im Beispiel wird <code>i</code> deklariert und auf 0 gesetzt.  | |||
# im '''zweiten''' Teil wird eine '''Bedingung''' festgelegt: Solange die Bedingung erfüllt ist, läuft die Schleife.<br>Im Beispiel läuft die Schleife so lange, wie <code>i</code> kleiner als 100 ist.  | |||
# im '''dritten''' Teil wird die '''Veränderung''' festgelegt: <u>Nach</u> jedem Schleifendurchlauf wird die Veränderung durchgeführt.<br>Im Beispiel wird <code>i</code> um 1 erhöht.  | |||
=== foreach-Schleife ===  | === foreach-Schleife ===  | ||
TODO: Beschreibung  | TODO: Beschreibung  | ||
<font color='red'>Nicht zentralabitur-relevant</font>  | |||
[[File:ForeachSchleife.png|none|Flussdiagramm einer for-each-Schleife]]  | [[File:ForeachSchleife.png|none|Flussdiagramm einer for-each-Schleife]]  | ||
| Zeile 69: | Zeile 99: | ||
'''Syntax:'''  | '''Syntax:'''  | ||
Der folgende Code gibt   | Der folgende Code gibt alle Namen aus <code>namenVector</code> aus:  | ||
<code>  |  <code>  | ||
   Vector<String> namenVector;  | |||
   //   |    // TODO: namenVector füllen!  | ||
   for (  |    for (String akutellerName : namenVector ) {  | ||
       System.out.println(  |        System.out.println(aktuellerName);                  | ||
   }  |    }  | ||
</code>  |  </code>  | ||
Aktuelle Version vom 23. Januar 2022, 17:58 Uhr
TODO: Beschreibung
Arten
man unterscheidet zwischen folgende Schleifen-arten:
- while-Schleife
 - do-While-Schleife
 - for-Schleife
 - foreach-Schleife
 
while-Schleife
Falls die while-Bedingung erfüllt sind wird die Schleife durchgelaufen und dann die while-Bedingung erneut geprüft. Wenn die while-Bedingung nicht mehr erfüllt ist, bricht die Schleife ab.
Beispiel 1: Der folgende Code gibt die Zahlen von 0 bis 99 aus:
int i=0;
while(i<100)
{
   System.out.println(i);
   i = i+1;
}
Beispiel 2: Kara geht im Uhrzeigersinn um einen Wald:
while(!kara.onLeaf())
{
   if(!kara.treeRight())
   {
      kara.turnRight();
   }
   if(kara.treeFront())
   {
      kara.turnLeft();
       if(kara.treeFront())
      {
         kara.turnLeft();
      }
   }
   kara.move();
}
Wichtig:
In der Schleife muss etwas verändert werden, damit die while-Bedingung irgendwann einmal erfüllt ist!
Best practice: 
Die Veränderung sollte immer als Letztes in der Schleife gemacht werden!
In Beispiel 1 ist die Veränderung i = i + 1
In Beispiel 2 ist die Veränderung, dass Kara einen Schritt weitergeht.
do-while-Schleife
TODO: Beschreibung
Syntax: Der folgende Code gibt die Zahlen von 0 bis 99 aus:
int i=0;
do 
{
   System.out.println(i);
   i++;
} 
while (i<100);
for-Schleife
for-Schleifen sind Zählschleifen. Sie werden verwendet, wenn etwas n-mal (z.B. 100-mal) wiederholt werden soll.
Beispiel 1: Der folgende Code gibt die Zahlen von 0 bis 99 aus:
for(int i=0; i<100; i++)
{
   System.out.println(i);
}
Erläuterung:
Die for- Schleife hat in der Klammer immer drei Teile, die durch Semikolons (;) getrennt werden.
- im ersten Teil wird eine Zählvariable deklariert und mit einem Startwert initalisiert.
Im Beispiel wirdideklariert und auf 0 gesetzt. - im zweiten Teil wird eine Bedingung festgelegt: Solange die Bedingung erfüllt ist, läuft die Schleife.
Im Beispiel läuft die Schleife so lange, wieikleiner als 100 ist. - im dritten Teil wird die Veränderung festgelegt: Nach jedem Schleifendurchlauf wird die Veränderung durchgeführt.
Im Beispiel wirdium 1 erhöht. 
foreach-Schleife
TODO: Beschreibung
Nicht zentralabitur-relevant
Syntax:
Der folgende Code gibt alle Namen aus namenVector aus:
 Vector<String> namenVector;
 // TODO: namenVector füllen!
 for (String akutellerName : namenVector ) {
     System.out.println(aktuellerName);               
 }
