Huelsse/Profil Nawi/Java/Java-Turtle - Mehrfachverzweigungen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
'''Java Turtle - Mehrfachverzweigung SWITCH'''
----

Statt mehrerer IF-Anweisungen, können Mehrfachverzweigungen genutzt werden:<BR>
Der Turtle geht 20 mal 10 Schritte voran, dabei wird bei den 20 Wiederholungen eine die Laufvariable i benutzt<br>
zusätzlich wird eine zweite Variable k (kann Werte zwischen 1 und 4 annehmen) genutzt, ist i durch 4 teilbar, wird k wieder auf 1 gesetzt und bei jedem Schleifendurchlauf um 1 erhöht<BR>
ist die Laufvariable k durch 1 teilbar, dann werden 10 Schritte in rot gezeichnet, <BR>
ist die Laufvariable k durch 2 teilbar, dann werden 10 Schritte in grün gezeichnet, <br>
ist die Laufvariable k durch 2 teilbar, dann werden 10 Schritte in blau gezeichnet, <br>
ist die Laufvariable k durch 2 teilbar, dann werden 10 Schritte in schwarz gezeichnet, <br>
{|
 |-
 | 
 *  turtle.left(90);
 *  int k = 1;
 *  for (int i = 1; i < 21; i++)
 *  { 
 *   switch(k) 
 *   {
 *    case 1:  <BR>*   { turtle.penColor(255,0,0); break;} 
 *    case 2:  <BR>*   { turtle.penColor(0,255,0); break;} 
 *    case 3:  <BR>*   { turtle.penColor(0,0,255); break;} 
 *    case 4:  <BR>*   { turtle.penColor(0,0,0); break;} 
 *   } 
 *  turtle.forward(10);
 *  k++;
 *  if (i %  4 == 0)
 *  { k =1; }
 * }
 || [[Bild:Koehler_Turtle5_bunte_linie.jpg]] 
 |}

Mit IF-THEN-Blöcken (einseitige Verzweigungen) können Anweisungen nur bei bestimmten Bedingungen ausgeführt werden<BR>
Erklärung der Anweisungen:

* turtle.left(90);  - Blickrichtung Turtle ist links
* int k = 1; - Wert für 2. Variable k wird mit 1 festgelegt
* <span style="background-color:#80ff80">for (int i = 1;      i <= 21;       i++ )</span> Zählschleife, wiederholt folgenden Anweisungen 20 mal:
* <span style="background-color:#ffff80"> switch k </span> - Start der mehrseitigen Verzweigung, unterschieden wird nach dem Inhalt der Variablen k
* <span style="background-color:#80ffff">case 1:  { turtle.penColor(255,0,0); break;} </span>
* <span style="background-color:#80ffff">case 2:  { turtle.penColor(0,255,0); break;} </span>
* <span style="background-color:#80ffff">case 3:  { turtle.penColor(0,0,255); break;} </span>
* <span style="background-color:#80ffff">case 4:  { turtle.penColor(0,0,0); break;} </span>
* turtle.forward(10); -  Anschließend läuft der Turtle 10 Schritte
* k++ - Der Inhalt der Variablen k wird um 1 erhöht
* if (i %  4 == 0) { k =1; } - wenn die Laufvariable i bei den 20 Durchläufen durch 4 teilbar ist, wird k wieder auf 1 zurückgesetzt
* k kann nur Werte zwischen 1 und 4 annehmen


{| border="1"
 |-
 | Struktogramm || Java Quelltext || Pascal Quelltext  
 |-
 | [[Bild:Koehler_Turtle5_bunte_linie.png]] || turtle.left(90);<BR>  int k = 1;<BR>  for (int i = 1; i < 21; i++)<BR>  { <BR>   switch(k) <BR>   {<BR>    case 1:  <BR>   { turtle.penColor(255,0,0); break;} <BR>    case 2:  <BR>   { turtle.penColor(0,255,0); break;} <BR>    case 3:  <BR>   { turtle.penColor(0,0,255); break;} <BR>    case 4:  <BR>   { turtle.penColor(0,0,0); break;} <BR>   } <BR>  turtle.forward(10);<BR>  k++;<BR>  if (i %  4 == 0)<BR>  { k =1; }<BR> }<BR> 
|| turtle_left(90);<BR>  k =: 1;<BR>  for i := 1 to 20 do <BR> begin <BR>   case k of <BR>    1:   turtle_penColor(255,0,0);  <BR>  2:  turtle_penColor(0,255,0);  <BR>    3: turtle_penColor(0,0,255) <BR>    4:   turtle_penColor(0,0,0)<BR>   end; <BR>  turtle_forward(10);<BR>  k := k + 1;<BR>  if (i MOD  4 == 0)<BR>  THEN k :=1; <BR> end;<BR>  
|}
<BR>