Schleife (Informatik): Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:


=== while-Schleife ===
=== while-Schleife ===
[[File:While-schleife-flussdiagramm.png|thumb|Flussdiagramm einer while-Schleife]]
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.
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:'''
'''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)
Zeile 24: Zeile 23:
     i = i+1;
     i = i+1;
  }
  }
</code>
</code>


'''Beispiel 2:'''
'''Beispiel 2:'''
[[File:kara-rund-um-den-wald.png|242px|thumb|Kara geht rund um den Wald]]
Kara geht im Uhrzeigersinn um einen Wald:
Kara geht im Uhrzeigersinn um einen Wald:
<code>
<code>
  '''while'''(!kara.onLeaf())
  '''while'''(!kara.onLeaf())
  {
  {
Zeile 46: Zeile 44:
     kara.move();
     kara.move();
  }
  }
</code>
</code>


'''Wichtig''':
'''Wichtig''':
Zeile 60: Zeile 58:
=== do-while-Schleife ===
=== do-while-Schleife ===
TODO: Beschreibung
TODO: Beschreibung
[[File:Do-while-schleife-flussdiagramm.png|none|Flussdiagramm einer do-while-Schleife]]


'''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 74: Zeile 69:
  }  
  }  
  while (i<100);
  while (i<100);
</code>
</code>


=== for-Schleife ===
=== for-Schleife ===
TODO: Beschreibung
<code>for</code>-Schleifen sind '''Zählschleifen'''. Sie werden verwendet, wenn etwas '''n-mal (z.B. 100-mal)''' wiederholt werden soll.


[[File:For-schleife-flussdiagramm.png|none|Flussdiagramm einer for-Schleife]]
'''Beispiel 1:'''
 
'''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>
  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 ===
Zeile 99: Zeile 99:


'''Syntax:'''
'''Syntax:'''
Der folgende Code gibt die Zahlen von 0 bis 99 aus:
Der folgende Code gibt alle Namen aus <code>namenVector</code> aus:
<code>
<code>
   List<int> zahlenListe;
   Vector<String> namenVector;
   // Liste ausfüllen!
   // TODO: namenVector füllen!
   for (int i : zahlenListe ) {
   for (String akutellerName : namenVector ) {
       System.out.println(i);               
       System.out.println(aktuellerName);               
   }
   }
</code>
</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);               
 }