Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.

Ähnliche Präsentationen


Präsentation zum Thema: "PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ."—  Präsentation transkript:

1 PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ int Typ String Operatoren auf int (+, -, *, /, %) und String (+) Vergleichoperatoren (==, !=, >, =, <=)

2 PKJ 2005/2 Stefan Dissmann Ergänzungen Weitere Konstrukte: for-Schleife if-else-Anweisung Weitere Typen: boolean byte, short, long, float, double char Zuweisungsoperatoren Sichtbarkeit von Variablen

3 PKJ 2005/3 Stefan Dissmann for-Schleife Wiederkehrendes Problem: Durchlaufen eines Feldes zähler = 0; while (zähler < zahlen.length) { System.out.print(zahlen[zähler] + ); zähler = zähler+1; } Einfacher mit for-Schleife: for (zähler=0; zähler<zahlen.length; zähler=zähler+1) { System.out.print(zahlen[zähler] + ); }

4 PKJ 2005/4 Stefan Dissmann for-Schleife for (zähler=0; zähler<zahlen.length; zähler=zähler+1) { System.out.print(zahlen[zähler] + ); } 3 Bestandteile Initialisierung: Wird genau ein Mal und am Anfang ausgeführt! (auch mit Vereinbarung, auch mehrere Variable) Bedingung (wie bei while-Schleife) Anweisungsteil: Wird immer am Ende eines Schleifendurchlaufs ausgeführt! (auch mit mehreren Anweidungen)

5 PKJ 2005/5 Stefan Dissmann for-Schleife Also möglich: for (int i=0,j=5; i<j; i=i+1, j=j-1, System.out.println(i+" "+j)); Erzeugt: 1 4 2 3 3 2

6 PKJ 2005/6 Stefan Dissmann for-Schleife Und seit JAVA 5 auch möglich! Statt for (zähler=0; zähler<zahlen.length; zähler=zähler+1) { System.out.print(zahlen[zähler] + ); } Jetzt for (int element : zahlen) { System.out.print(element + ); }

7 PKJ 2005/7 Stefan Dissmann if-else-Anweisung Auch möglich: for (int zähler=0; zähler<zahlen.length; zähler=zähler+1) { if (zahlen[zähler] != 0) { System.out.print(Primzahl, ); } else { System.out.print(keine Primzahl, ); } } else bezieht sich immer auf vorangehendes if entweder if- oder else- Zweig wird durchlaufen auf else folgt Anweisung oder Block, also insbesondere auch … else if ( … ) …

8 PKJ 2005/8 Stefan Dissmann boolean Typ für Wahrheitswerte Schlüsselwort: boolean Wertemenge: true, false Operatoren:! = Negation (NOT) &= Konjunktion (AND) |= Disjunktion (OR) ^= exkl. Disj. (XOR) Shortcut-Operatoren: rechter Operand wird nur ausgewertet, wenn für das Ergebnis benötigt &&= shortcut AND ||= shortcut OR

9 PKJ 2005/9 Stefan Dissmann Boolean - Beispiele Beispiel 1: boolean abbruch = false; while (!abbruch & i<j) { … abbruch = a < b; } Beispiel 2: while (b!=0 && (a/b==2)) { … } Mögliche Division durch 0 verhindert!

10 PKJ 2005/10 Stefan Dissmann byte, short, long, float, double Teilmengen der ganzen Zahlen byte Zahlen mit 8 bit short Zahlen mit 16 bit int Zahlen mit 32 bit long Zahlen mit 64 bit Bei Rechnung kann Überlauf auftreten! Teilmengen der reellen Zahlen float Zahlen im Bereich +-10 38 double Zahlen im Bereich +-10 308 Schreibweisen: 2.345.88f -4.67e3 66.8901e-3 Bei Rechnung kann Rundungsfehler auftreten!

11 PKJ 2005/11 Stefan Dissmann char Menge der Zeichen Schlüsselwort:char Wertemenge:'a' … 'z' 'A' … 'Z', '0' … '9', aber auch '\n' Zeichen sind geordnet (Unicode) daher sind Vergleiche möglich keine anderen Operatoren

12 PKJ 2005/12 Stefan Dissmann Typumwandlung Umwandlung von Zahlentypen von kleinerem zu größerem Wertebereich implizit: int i = 45; double f = i; von größerem zu kleinerem zu Wertebereich explizit: double f = 45.5; int i = (int)f; Type Cast

13 PKJ 2005/13 Stefan Dissmann Typumwandlung Umwandlung von Zeichen zu und aus int implizit: int i = ' a ' ; i=97, Unicode-Position von a char c = 97+1; c= ' b ', Zeichen 98 in Unicode char c = 'a'+2; c= ' c ', Zeichen 99 in Unicode zu und aus anderen Typen explizit: char c = (char)99.3;

14 PKJ 2005/14 Stefan Dissmann Zuweisungsoperatoren Kurzformen für häufige Zuweisungen stattkurz summe = summe + zähler; summe+=zähler; produkt = produkt * zähler; produkt*=zähler; zähler = zähler + 1;zähler++; oder ++zähler; aber: zähler++ und ++zähler liefern unterschiedliche Ergebnisse

15 PKJ 2005/15 Stefan Dissmann Zuweisungsoperatoren Beispiel: int i=1, j=1; System.out.println(1 + i++); druckt 2 System.out.println(1 + ++j); druckt 3 System.out.println(i+ +j); druckt 2 2 i++ erhöht i um 1 und liefert den Wert von i vor der Erhöhung ++i erhöht i um 1 und liefert den Wert von i nach der Erhöhung

16 PKJ 2005/16 Stefan Dissmann Sichtbarkeit von Variablen Variablen sind immer sichtbar nach ihrer Vereinbarung In dem Block, in dem sie vereinbart wurden In allen darin geschachtelten Blöcken in der for-Schleife, in der sie vereinbart wurden Variablen können in ihrem Sichtbarkeitsbereich nicht erneut vereinbart werden!


Herunterladen ppt "PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ."

Ähnliche Präsentationen


Google-Anzeigen