Schleife (Informatik): Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
 
(15 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 9: Zeile 9:
# do-While-Schleife
# do-While-Schleife
# for-Schleife
# for-Schleife
# foreach-Schleife


=== while-Schleife ===
=== while-Schleife ===
Falls die Bedingungen erfüllt sind wird die Schleife durchgelaufen und die Bedingungen erneut geprüft. Wenn die Bedingungen nicht mehr erfüllt sind, bricht die Schleife ab.
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.
[[File:While-schleife-flussdiagramm.png|none|Flussdiagramm einer while-Schleife]]


'''Beispiel 1:'''
Der folgende Code gibt die Zahlen von 0 bis 99 aus:
<code>
int i=0;
'''while'''(i<100)
{
    System.out.println(i);
    i = i+1;
}
</code>


'''Syntax:'''
'''Beispiel 2:'''
<code>
Kara geht im Uhrzeigersinn um einen Wald:
  while(Bedingung)
<code>
  '''while'''(!kara.onLeaf())
  {
  {
     // Anweisungen
     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: '''
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
[[File:Do-while-schleife-flussdiagramm.png|none|Flussdiagramm einer do-while-Schleife]]


'''Syntax:'''
'''Syntax:'''
<code>
Der folgende Code gibt die Zahlen von 0 bis 99 aus:
<code>
  int i=0;
  int i=0;
  do  
  do  
Zeile 38: 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:
<code>
for(int i=0; i<100; i++)
{
    System.out.println(i);
}
</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 ===
TODO: Beschreibung
TODO: Beschreibung


[[File:For-schleife-flussdiagramm.png|none|Flussdiagramm einer for-Schleife]]
<font color='red'>Nicht zentralabitur-relevant</font>
 
[[File:ForeachSchleife.png|none|Flussdiagramm einer for-each-Schleife]]
 


'''Syntax:'''
'''Syntax:'''
<code>
Der folgende Code gibt alle Namen aus <code>namenVector</code> aus:
  for(Typ Variable = Wert; Bedingung; Aktualisierung)
  <code>
{
  Vector<String> namenVector;
    // Anweisungen
  // TODO: namenVector füllen!
}
  for (String akutellerName : namenVector ) {
</code>
      System.out.println(aktuellerName);             
  }
</code>

Aktuelle Version vom 23. Januar 2022, 17:58 Uhr


TODO: Beschreibung

Arten

man unterscheidet zwischen folgende Schleifen-arten:

  1. while-Schleife
  2. do-While-Schleife
  3. for-Schleife
  4. 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.

  1. im ersten Teil wird eine Zählvariable deklariert und mit einem Startwert initalisiert.
    Im Beispiel wird i deklariert und auf 0 gesetzt.
  2. 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, wie i kleiner als 100 ist.
  3. im dritten Teil wird die Veränderung festgelegt: Nach jedem Schleifendurchlauf wird die Veränderung durchgeführt.
    Im Beispiel wird i um 1 erhöht.

foreach-Schleife

TODO: Beschreibung

Nicht zentralabitur-relevant

Flussdiagramm einer for-each-Schleife


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);               
 }