Robotik mit LEGO Mindstorms JavaEinfhrung zur Programmierung Variablen
Robotik mit LEGO Mindstorms Java-Einführung zur Programmierung
Variablen • Zum Speichern von Daten benötigt man Variablen • Eine Variable verweist auf einen Speicherplatz, in den man Daten ablegen kann • Hierfür gibt es verschieden Datentypen um Zahlen, Text, Zeichen oder logische Werte zu speichern 2
Eingebaute Datentypen Typ Länge Wertebereich (in byte) boolean 1 true, false char 2 Alle Unicode-Zeichen byte 1 -128… 127 short 2 -32786… 32767 int 4 -231… 231 -1 long 8 -263… 263 -1 float 4 +/-3. 40282347*1038 double 8 +/-1. 1. 79769313486231570 * 10308 3
Sonderfall String • Zum Speichern von Text wird die in Java eingebaute Klasse String verwendet. Im Gegensatz zu Datentypen besitzt ein String Funktionen. Somit kann man sich z. B die Anzahl der Zeichen des Textes ausgeben lassen. 4
Beispiel Variablenname int zahl=1; Datentyp Wert System. out. println(zahl); Ausgabe: 1 5
Beispiel String • String text= "Hallo Welt"; System. out. println(text); System. out. println(text. length()); • Ausgabe: Hallo Welt 10 • Die Funktion length() gibt die Anzahl der Zeichen des String zurück. • Aufruf von Funktionen über: Variablenname. Funktion 6
Programmierung • Zuweisung mit = • Jeder Befehl Endet mit ; • Leerzeichen werden ignoriert • int zahl = würde funktionieren • Programmblöcke in { 7 1 } fassen ;
Arithmetische Operatoren Operator Bezeichnung Bedeutung + Summe int x=8+5 , Wert von x=13 - Diffenerenz int x=8 -5, Wert von x=3 * Produkt int x=8*5, Wert von x=40 / Quotient int x=8/5, Wert von x=1 % Restwert int x=8%5, Wert von x=3 8
Beispiel int zahl 1=5; int zahl 2=6; int zahl 3=zahl 1+zahl 2; System. out. println(zahl 3); Ergibt eine Ausgabe von 11 9
Abfragen • Oft möchte man einen Befehl nur dann ausführen, wenn eine bestimmte Bedingung erfüllt ist. Hierzu gibt es in Java den Befehl if • if(zahl 1==2){ System. out. println(zahl 1); } • Somit erfolgt die Ausgabe nur, wenn in zahl 1 der Wert 2 gespeichert ist. 10
Relationale Operatoren • Relationale Operatoren geben einen boolean Wert zurück (true oder false) Operator Bezeichnung Bedeutung == gleich a==b ergibt true, wenn a gleich b ist != ungleich a!=b ergibt true, wenn a ungleich b ist < kleiner a<b ergibt true, wenn a kleiner b ist <= kleiner gleich a<=b ergibt true, wenn a kleiner oder gleich b ist > größer a>b ergibt true, wenn a größer b ist >= größer gleich a>=b ergibt true, wenn a größer oder gleich b ist 11
Mehrere Abfragen • Oftmals möchte man mehrere Bedingung gleichzeitig prüfen, bevor ein Befehl ausgeführt werden soll. • Hierzu gibt es logische Operatoren • Rückgabewerte sind auch vom Typ boolean (true oder false) 12
Operator Logische Operatoren Bezeichnung Bedeutung ! logisches NICHT !a ergibt false, wenn a wahr ist, und true, wenn a falsch ist && UND mit Short. Circuit-Evaluation a&&b ergibt true, wenn sowohl a als auch b wahr sind. Ist a bereits falsche, so wird false zurückgegeben und b nicht mehr ausgewertet || ODER mit Short. Circuit-Evaluation a||b ergibt true, wenn mindestens einer der beiden Ausdrücke a oder b wahr ist. Ist bereits a wahr, so wird true zurückgegeben und b nicht mehr ausgewertet & UND ohne Short. Circuit-Evalutaion a&b ergibt true, wenn sowohl a als auch b wahr sind. Beide Teilausdrucke werden ausgewertet | ODER ohne Short. Circuit-Evaluation a|b ergibt true, wenn mindestens einer der beiden Ausdrücke a oder b wahr ist. Beide Teilausdrücke werden ausgewertet. ^ Exklusiv-Oder a^b ergibt true, wenn beide Ausdrücke einen 13 unterschiedlichen Wahrheitswert haben
Logische Operatoren a b !a a&&b a||b a^b (!a||b)^ (a&&b) 0 0 1 0 1 1 0 0 0 1 1 0 0 14
Beispiel • if (zahl 1>50 && zahl 1<=100){ … … } • Die Bedingung ist also nur erfüllt, wenn zahl 1 im Bereich von 51 bis 100 liegt. 15
Schleifen • Schleifen sind nützlich um bestimmte Anweisung mehrmals auszuführen. Hierbei können die Variablen ihre Werte ändern. • Zum Beispiel könnte man sich die Zahlen von 1 bis 10 Ausgeben lassen wollen 16
while-Schleife • while(Bedingung){ Befehle; } • int i=1; while(i<=10){ System. out. println(i); i++; } • i++ ist kurz für i=i+1 17
for-Schleife • for(Initialisierung; Bedingung; Inkrement){ Befehle; } • for(int i=1; i<=10; i++){ System. out. println(i); } 18
- Slides: 18