1 / 60

Java- Syntax

Java- Syntax. Bestandteile der Sprache Java:. Ausdrücke. Anweisungen. Ausdruck. Ein Ausdruck ist eine Folge von Operatoren und Operanden. Ein Ausdruck ist - grob gesagt - ein Term oder eine mathematische Formel. Jeder Ausdruck hat einen Wert !!. Es gibt folgende Ausdrücke:.

Download Presentation

Java- Syntax

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java- Syntax

  2. Bestandteile der Sprache Java: • Ausdrücke • Anweisungen

  3. Ausdruck

  4. Ein Ausdruck ist eine Folge von Operatoren und Operanden. Ein Ausdruck ist - grob gesagt - ein Term oder eine mathematische Formel. Jeder Ausdruck hat einen Wert !!

  5. Es gibt folgende Ausdrücke: - arithmetische Ausdrücke - relationale und logische Ausdrücke - Zuweisungsausdrücke

  6. ArithmetischeAusdrücke

  7. Beispiele: In allen folgenden Beispielen wird stillschweigend vorausgesetzt, dass die benutzten Variablen alle vorher deklariert wurden!!!

  8. Literal (Konstante), Wert des Ausdrucks: 3 3 3+5-2 Wert des Ausdrucks: 6 kein Ausdruck (syntaktisch falsch) 3+ xy Variable, Wert des Ausdrucks: unbekannt, da der Wert von xy in diesem Zusammenhang dem Programmierer nicht bekannt ist. 2x keine Variable: Variablenname darf nicht mit einer Ziffer beginnen ! (syntaktisch falsch)

  9. 3+x-2x kein Ausdruck, da * in 2x fehlt(syntaktisch falsch) x+3 Ausdruck, Wert des Ausdrucks: unbekannt / bedeutet Division, zuerst werden Klammern ausgewertet, dann Punkt vor Strich x-y/b+3-(3+y)*4 Wert des Ausdrucks: unbekannt 27%4 ganzzahliger Rest bei der Division: 27 : 4 = 6 Rest 3, also Wert des Ausdrucks: 3

  10. 26%4 ganzzahliger Rest bei der Division: 26 : 4 = 6 Rest 2, also Wert des Ausdrucks: 2 25%4 ganzzahliger Rest bei der Division: 25 : 4 = 6 Rest 1, also Wert des Ausdrucks: 1 24%4 ganzzahliger Rest bei der Division: 24 : 4 = 6 Rest 0, also Wert des Ausdrucks: 0 a++ erhöht a um 1, Wert des Ausdrucks: unbekannt b-- verringert b um 1, Wert des Ausdrucks: unbekannt

  11. Relationale und logische Ausdrücke

  12. Relationale und logische Ausdrücke sind wahr (true)oder falsch (false)und haben den Datentyp boolean

  13. Kleiner Ausflug in die formale Logik

  14. Die zusammengesetzte Aussage A UND Bist nur wahr, wenn A und B wahr sind, ansonsten ist sie falsch

  15. Die zusammengesetzte Aussage A ODER Bist nur falsch, wenn A und B falsch sind, ansonsten ist sie wahr.

  16. Die negierte Aussage NICHT Aist falsch, wenn A wahr ist und wahr, wenn A falsch ist.

  17. Diese Zusammenhänge lassen sich auch mit einer sogenannten Wahrheitstafeln darstellen:

  18. Java kennt aber kein "wahr" oder "falsch", sondern:

  19. Beispiele:

  20. Wert: true Wert: false 0 < 5 Wert hängt von x ab: Für x grösser oder gleich 2: true Für x kleiner 2: false 8 > 9 x+3 >= 5 mathematisches = 1 == 2 Wert: false mathematisches  1 != 3 Wert: true

  21. Relationale Operatoren sind zweistellig und dürfen nur mit zwei Operanden arbeiten. Deswegen ist folgende Zeichenkette kein Ausdruck: 4 < x < 7

  22. LogischeAusdrücke

  23. Beispiele:

  24. a && b logisches ODER logisches UND x || y (x>0) && (x<10) !(x<y) logisches NICHT

  25. Operatoren Arithmetische Operatoren: + - * / % ++ -- Vergleichsoperatoren: < <= > >= == != ! && || Logische Operatoren: ~ & | Bitweise Operatoren:

  26. Zuweisungsausdrücke

  27. Ein Zuweisungsausdruck enthält einen Zuweisungsoperator wie z.B. =+=++--

  28. Ein Zuweisungsausdruck ist ein Ausdruck, keine Anweisung, der eine Wirkung (Nebenwirkung) hat, nämlich die Zuweisung.Diese Zuweisung verändert den Wert der Variablen.

  29. Da ein Zuweisungsausdruck ein Ausdruck ist, hat ein Zuweisungsausdruck also einen Wert !!!

  30. Beispiele:

  31. Wert des Ausdrucks : 17 Nebenwirkung: Wert der Variablen a ist 17 a = 17 Wert des Ausdrucks : 11 Nebenwirkung: Wert der Variablen x ist 11 x = 3+2*4 Punkt vor Strich. Dies bedeutet, dass dass z.B. die Multiplikation Priorität (=Vorrang) vor der Addition hat

  32. y = x = 2 Wie wird der Wert diesen Ausdrucks berechnet ?

  33. Warum Abarbeitung von rechts nach links? Weil dies in der Norm so festgelegt ist!Nähers dazu später! (Assoziativität = Auswertung eines Ausdrucks von rechts oder links) Abarbeitung: von rechts nach links Wert des Ausdrucks : 2 Nebenwirkung: Wert der Variablen y ist 2 Wert des Ausdrucks : 2 Nebenwirkung: Wert der Variablen x ist 2 y = x = 2

  34. Wert des Ausdrucks : 15 Nebenwirkung: Wert der Variablen a ist 15 Wert des Ausdrucks : 5 Nebenwirkung: Wert der Variablen x ist 5 a=(x=5)*3

  35. Erhöht den Wert der Variablen a um eins nach der Verwendung in einem Ausdruck. a++ Verringert den Wert der Variablen a um eins nach der Verwendung in einem Ausdruck. a-- Erhöht den Wert der Variablen a um eins vor der Verwendung in einem Ausdruck. ++a Verringert den Wert der Variablen a um eins vor der Verwendung in einem Ausdruck. --a

  36. Beispiele dazu:Welche Bildschirmausgaben erzeugt folgendes Programm?(Zwecks Platzersparnis wird hier wieder System.out.println durch println abgekürzt.)

  37. int main(){ int i; i=10; println("Wert nach i++ ist: "+ i++); println("Wert nach i–- ist: "+ i--); println("Wert nach ++i ist: "+ ++i); println("Wert nach --i ist: "+ --i); } Wert von i wird erst nach dieser Anweisung erhöht Wert von i wird erst nach dieser Anweisung verringert Wert von i wird schon vor dieser Anweisung erhöht Wert von i wird schon vor dieser Anweisung verringert 10 11 11 10 also Bildschirmausgabe:

  38. println("Wert nach i++ ist: "+ i++); println("Wert nach i++ ist: "+ i); i=i+1; println("Wert nach i-- ist: "+ i--); println("Wert nach i-- ist: "+ i); i=i-1; println("Wert nach ++i ist: "+ ++i); i=i+1; println("Wert nach ++i ist: "+ i); println("Wert nach --i ist: "+ --i); i=i-1; println("Wert nach --i ist: "+ i); Durch welche 2 Anweisungen kann man diese Anweisung also simulieren? Durch welche 2 Anweisungen kann man diese Anweisung also simulieren? Durch welche 2 Anweisungen kann man diese Anweisung also simulieren? Durch welche 2 Anweisungen kann man diese Anweisung also simulieren?

  39. Dies ist eine abkürzende Schreibweise für ... x+=y x=x+y Das gleiche gilt für: *= -= usw.

  40. Priorität und Assoziativität bei Operatoren.

  41. und nicht: (3 + 5) * 6 = 48 Ein Operator hat höherePriorität bedeutet, daß die zugehörige Operation zuerst ausgeführt wird, wie z.B:3+5*6(Punkt vor Strich) = 3 + (5 * 6) = 33 also hat * eine höhere Priorität als +

  42. Wenn zwei Operatoren die gleiche Priorität haben, bestimmt die Assoziativität, welche Operation zuerst ausgeführt wird.

  43. Beispiel:

  44. * und / haben die gleiche Priorität und die Assoziativität von Links nach Rechts (kurz: L).

  45. 3 * 6 / 9 Wie wird der Wert dieses Ausdrucks berechnet ?

  46. 2 3 * 6 / 9 18 Deswegen wird zuerst 3*6 (= 18) berechnet und dann 18/9 (=2)

  47. 0 3 * 6 / 9 da 6 und 9 integer sind 0 Welches Ergebnis hat der Ausdruck, wenn * und / rechtsassoziativ wären?

  48. 60 / 10 / 2 Wie wird der Wert dieses Ausdrucks berechnet ?

More Related