Informatik: Einführung in Java Kara benutzt Sensoren
Informatik: Einführung in Java Kara benutzt Sensoren
Informatik: Einführung in Java Kara benutzt Sensoren
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Informatik</strong>: E<strong>in</strong>führung <strong>in</strong> <strong>Java</strong><br />
Gierhardt<br />
<strong>Kara</strong> <strong>benutzt</strong> <strong>Sensoren</strong><br />
Aufgabe: <strong>Kara</strong> steht vor e<strong>in</strong>em Baum oder nicht. Wenn nicht, soll er e<strong>in</strong>fach e<strong>in</strong>en Schritt<br />
weitergehen oder ansonsten um den e<strong>in</strong>zelnen Baum herumgehen.<br />
Das Neue: <strong>Kara</strong> <strong>benutzt</strong> jetzt se<strong>in</strong>e <strong>Sensoren</strong>. Hier braucht er nur se<strong>in</strong>en Sensor, der ihm<br />
mitteilt, ob vor ihm e<strong>in</strong> Baum steht (kara.treeFront()).<br />
1 import javakara . <strong>Java</strong><strong>Kara</strong>Program ;<br />
2<br />
3 public class <strong>Kara</strong>Sensor extends <strong>Java</strong><strong>Kara</strong>Program<br />
4 { // Anfang von <strong>Kara</strong>Sensor1<br />
5<br />
6 void geheUmBaumHerum ( )<br />
7 {<br />
8 kara . t urnLeft ( ) ;<br />
9 . . . // wie vorher , <strong>Kara</strong> hat es g e l e r n t .<br />
10 }<br />
11<br />
12 public void myProgram ( )<br />
13 { // Anfang von myProgram<br />
14 i f ( kara . treeFront ( ) )<br />
15 { this . geheUmBaumHerum ( ) ; }<br />
16 else { kara . move ( ) ; }<br />
17<br />
18 } // Ende von myProgram<br />
19<br />
20 } // Ende von <strong>Kara</strong>Sensor<br />
1
Erläuterungen:<br />
1. Die Syntax der Verzweigung mit if:<br />
if ( Bed<strong>in</strong>gung )<br />
{ Auszufuehrende Methoden, wenn ja }<br />
else { Auszufuehrende Methoden, wenn ne<strong>in</strong> }<br />
Die Bed<strong>in</strong>gung wird <strong>in</strong> ( ) e<strong>in</strong>geschlossen, die auszuführenden Methoden <strong>in</strong> { }.<br />
2. Ist jeweils nur e<strong>in</strong>e Methode auszuführen, dann können die geschweiften Klammern<br />
auch weggelassen werden.<br />
if (kara.treeFront())<br />
this.geheUmBaumHerum();<br />
else kara.move();<br />
Es empfiehlt sich aber, im S<strong>in</strong>ne e<strong>in</strong>es konsequenten und übersichtlichen Programmierstils<br />
die geschweiften Klammern immer zu setzen.<br />
3. Der else-Zweig kann auch entfallen. Beispiel:<br />
if (kara.onLeaf()) { kara.removeLeaf(); }<br />
4. E<strong>in</strong>e verne<strong>in</strong>te Bed<strong>in</strong>gung wird mit e<strong>in</strong>em Ausrufezeichen gekennzeichnet:<br />
if (!kara.treeFront())<br />
{ kara.move(); }<br />
else { this.geheUmBaumHerum(); }<br />
5. Mehrere Bed<strong>in</strong>gungen können durch ODER bzw. UND verknüpft werden.<br />
Verknüpfung Zeichen Beispiel<br />
ODER || if (kara.treeFront() || kara.onLeaf()) ...<br />
UND && if (kara.treeFront() && kara.onLeaf()) ...<br />
Das sieht etwas merkwürdig aus, aber man kann sich daran gewöhnen. Mir persönlich<br />
wären Schlüsselwörter wie NOT, OR und AND lieber gewesen, aber mich hat ja<br />
niemand gefragt, als man die Programmiersprache <strong>Java</strong> entwickelte.<br />
6. Kompliziertere Bed<strong>in</strong>gungen mit mehreren UNDs, ODERs und NOTs muss man durch<br />
Klammerpaare ( ) schachteln.<br />
2