Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer 1 8 9 ...
Java Syntaxdiagramme Buchstabe Ziffer _ $ Name
Java Syntaxdiagramme Ziffer Nichtnullziffer + l Ganze Zahl Oktalziffer - Nichtnullziffer Ziffer 0x 0X Oktalziffer Hexziffer l L Ganze Zahl
... ... ... Java Syntaxdiagramme Nichtnullziffer 1 2 8 9 Oktalziffer 1 1 6 7 ... Hexadezimalziffer a b f A F ... Ziffer
Java Syntaxdiagramme Ausdruck / Name Zahl Ausdruck ( ) + - *
Alternative Darstellungsformen: Kontext-freie Grammatik. Ersetzungsregeln <Name> = <Buchstabe> <Zeichenliste> <Zeichenliste> = f (leeres Wort) <Zeichenliste> = <Buchstabe> <Zeichenliste> <Zeichenliste> = <Ziffer> <Zeichenliste> <Zeichenliste> = '_' <Zeichenliste> <Zeichenliste> = '$' <Zeichenliste> 2. Backus-Naur-Form. <Name> = <Buchstabe>(<Buchstabe>|<Ziffer>|'_'|'$')*
höhere Programmiersprachen Java - Beispiel c = a + b;
höhere Programmiersprachen Java - Beispiel int a, b, c; c = a + b; Variablendeklaration
höhere Programmiersprachen Java - Beispiel public static void main (String argv[]) { int a, b, c; c = a + b; } Hauptprogramm Variablendeklaration
höhere Programmiersprachen Java - Beispiel Dateiname: Beispiel.java public class Beispiel { public static void main (String argv[]) int a, b, c; c = a + b; } Hauptprogramm Variablendeklaration
höhere Programmiersprachen Java - Beispiel Dateiname: Beispiel.java public class Beispiel { public static void main (String argv[]) int a, b, c; c = a + b; } Hauptprogramm Variablendeklaration Datentyp: int
höhere Programmiersprachen Java - Beispiel Dateiname: Beispiel.java public class Beispiel { public static void main (String argv[]) int a, b, c; c = a + b; } Hauptprogramm Variablendeklaration Datentyp: int Zuweisung
höhere Programmiersprachen Java - Beispiel Dateiname: Beispiel.java public class Beispiel { public static void main (String argv[]) int a, b, c; c = a + b; } Hauptprogramm Variablendeklaration Datentyp: int Zuweisung Addition
höhere Programmiersprachen Java - Beispiel Dateiname: Beispiel.java public class Beispiel { public static void main (String argv[]) int a, b, c; c = a + b; } Hauptprogramm Variablendeklaration Datentyp: int Anweisungen werden mit einem Strichpunkt abgeschlossen Zuweisung Addition
höhere Programmiersprachen Java - Beispiel Dateiname: Beispiel.java public class Beispiel { public static void main (String argv[]) int a, b, c; c = a + b; } Hauptprogramm Beginn Variablendeklaration Datentyp: int Anweisungen werden mit einem Strichpunkt abgeschlossen Zuweisung Addition Ende
höhere Programmiersprachen Java Datentypen (ganze Zahlen): byte -128 ... 127 short -32768 ... 32767 int -2147483648 ... 2147483647 long -9223372036854775808 ... 9223372036854775807 Datentypen (Kommazahlen): float ±1.4023E-45 ... ±3.4028E+38 (10 Stellen) double ±4.9406E-324 ... ±1.7976E+308 (20 Stellen) Datentypen: char einzelnes Zeichen, z.B. ‘a‘ String Zeichenkette, z.B. “Java“ boolean Wahrheitswert (true oder false)
höhere Programmiersprachen Java - Beispiel int a; a = -23; double d = 2.3456; float f; f = -5.4321; boolean b = true; char ch = ‘E‘; String st = “test“; Variablennamen: bestehen aus Zeichen, Ziffern, und _ , darf nicht mit einer Ziffer beginnen.
höhere Programmiersprachen Java Arithmetische Operationen: + - * / für ganze Zahlen und Kommazahlen + auch für Strings (concatenate) % nur für ganze Zahlen (modulo) = Zuweisung, kein Vergleich Vergleiche (ergibt immer einen boolean): == alle Datentypen, außer String (Gleichheit) != alle Datentypen, außer String (Ungleichheit) < > <= >= alle Datentypen, außer String und boolean
höhere Programmiersprachen Java Bedingung ist ein Ausdruck vom Typ boolean (z.B. ein Vergleich) Verzweigung: if (Bedingung) { Anweisungen1; } else Anweisungen2; Anweisungen1 sind eine Folge von Anweisungen, die ausgeführt werden wenn die Bedingung erfüllt ist (bei einer Anweisung können die Klammern entfallen) Anweisungen2 sind eine Folge von Anweisungen, die ausgeführt werden wenn die Bedingung nicht erfüllt ist (der else - Teil kann entfallen)
höhere Programmiersprachen Java - Beispiel public class Beispiel2 { public static void main (String argv[]) int a, b, c; c = 12; if (c < 0) a = 3; b = 7; c = 2 * a + b; } else c = 2 * c;
höhere Programmiersprachen Java Eingabe: über Parameter (später) von der Tastatur (schwierig)
höhere Programmiersprachen Java Eingabe: über Parameter (später) von der Tastatur (schwierig) Entsprechende Funktionen werden vorgegeben.
höhere Programmiersprachen Java Eingabe: über Parameter (später) von der Tastatur (schwierig) Ausgabe: System.out.print(String); System.out.println(String); Entsprechende Funktionen werden vorgegeben.
höhere Programmiersprachen Java Eingabe: über Parameter (später) von der Tastatur (schwierig) Ausgabe: System.out.print(String); System.out.println(String); Entsprechende Funktionen werden vorgegeben. Variablen, die nicht vom Typ String sind können ausgegeben werden, indem sie mit einem String konkateniert werden.
höhere Programmiersprachen Java - Beispiel public class Beispiel3 { public static void main (String argv[]) int a = 23; double d = 17.98; System.out.println(“Hello World“); System.out.print(““+d); System.out.println(“a = “+a); }
höhere Programmiersprachen Java - Beispiel public class Beispiel3 { public static void main (String argv[]) int a = 23; double d = 17.98; System.out.println(“Hello World“); System.out.print(““+d); System.out.println(“a = “+a); } ““ ist der leere String
höhere Programmiersprachen Java - Beispiel public class Beispiel4 { Input in = new Input(); public static void main (String argv[]) int a, b, c; a = in.readInt(); b = in.readInt(); c = a + b; System.out.println(“a + b =“+c); } class Input ...
höhere Programmiersprachen Java - Beispiel public class Beispiel4 { Input in = new Input(); public static void main (String argv[]) int a, b, c; a = in.readInt(); b = in.readInt(); c = a + b; System.out.println(“a + b =“+c); } class Input ... Die Klasse Input stellt uns die Funktionen readInt(), readDouble(), readString() zur Verfügung.
höhere Programmiersprachen Java - Beispiel in ist eine Variable vom Typ Input public class Beispiel4 { Input in = new Input(); public static void main (String argv[]) int a, b, c; a = in.readInt(); b = in.readInt(); c = a + b; System.out.println(“a + b =“+c); } class Input ... Die Klasse Input stellt uns die Funktionen readInt(), readDouble(), readString() zur Verfügung.
höhere Programmiersprachen Java - Beispiel in ist eine Variable vom Typ Input public class Beispiel4 { Input in = new Input(); public static void main (String argv[]) int a, b, c; a = in.readInt(); b = in.readInt(); c = a + b; System.out.println(“a + b =“+c); } class Input ... Mit in.readInt() wird die Funktion readInt() der Klasse Input aufgerufen. Diese liest ein ganze Zahl ein. Die Klasse Input stellt uns die Funktionen readInt(), readDouble(), readString() zur Verfügung.
höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine Klasse darf public sein
höhere Programmiersprachen Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine Klasse darf public sein Variablen müssen mit new angelegt werden. Input in = new Input(); Funktionen werden Variablenname.Funktionsname aufgerufen in.readInt() oder in.readDouble()
höhere Programmiersprachen Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine Klasse darf public sein Variablen müssen mit new angelegt werden. Input in = new Input(); Funktionen werden Variablenname.Funktionsname aufgerufen in.readInt() oder in.readDouble() alle Datentypen außer boolean, byte, char, short, int, long, float, double sind Klassen die Klasse String ist eine Ausnahme (kein new erforderlich)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Verknüpfung von Bedingungen: && and (und) | | or (oder) ! not (nicht)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Verknüpfung von Bedingungen: && and (und) | | or (oder) ! not (nicht) if ((Bed1) && (Bed2)) { ... } if ((Bed1) || (Bed2)) if (!(Bedingung))
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: if ((a <= 0) && (a >= -20)) { ... } if ((a < 0) || (a > 0)) if (((a % 250) == 0) || (((a % 5) == 0) && (!((a % 50) == 0)))))
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: ... System.out.println(“1*1 = “+(1*1)); System.out.println(“2*2 = “+(2*2)); System.out.println(“3*3 = “+(3*3)); System.out.println(“4*4 = “+(4*4)); System.out.println(“5*5 = “+(5*5)); System.out.println(“6*6 = “+(6*6)); System.out.println(“7*7 = “+(7*7)); System.out.println(“8*8 = “+(8*8));
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt?
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Gibt die Quadratzahlen von 1 bis 8 aus
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Gibt die Quadratzahlen von 1 bis 8 aus Wie gebe ich die Quadratzahlen von 1 bis 100 aus?
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Gibt die Quadratzahlen von 1 bis 8 aus Wie gebe ich die Quadratzahlen von 1 bis 100 aus? Copy and Paste (Zeilen kopieren und anpassen)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Gibt die Quadratzahlen von 1 bis 8 aus Wie gebe ich die Quadratzahlen von 1 bis 100 aus? Copy and Paste (Zeilen kopieren und anpassen) Ziemlich aufwendig, nicht akzeptabel
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Gibt die Quadratzahlen von 1 bis 8 aus Wie gebe ich die Quadratzahlen von 1 bis 100 aus? Copy and Paste (Zeilen kopieren und anpassen) Schleifen Ziemlich aufwendig, nicht akzeptabel
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; }
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } startaktion wird einmal am Anfang durchgeführt (Initialisierung der Schleife)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } bedingung wird jedesmal vor der Ausführung von Anweisungen; geprüft. (Also auch nach startaktion) startaktion wird einmal am Anfang durchgeführt (Initialisierung der Schleife)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } bedingung wird jedesmal vor der Ausführung von Anweisungen; geprüft. (Also auch nach startaktion) startaktion wird einmal am Anfang durchgeführt (Initialisierung der Schleife) Anweisungen; werden solange ausgeführt bis bedingung nicht mehr erfüllt
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } bedingung wird jedesmal vor der Ausführung von Anweisungen; geprüft. (Also auch nach startaktion) startaktion wird einmal am Anfang durchgeführt (Initialisierung der Schleife) iteraktion wird jedesmal nach Anweisungen; ausgeführt Anweisungen; werden solange ausgeführt bis bedingung nicht mehr erfüllt
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiel: ... int i; for (i = 1;i <= 8;i = i + 1) System.out.println(i+“*“+i+“ = “+(i*i));
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiel: ... int i; for (i = 1;i <= 8;i = i + 1) System.out.println(i+“*“+i+“ = “+(i*i)); Quadratzahlen von 1 bis 8
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiel: ... int i; for (i = 1;i <= 100;i = i + 1) System.out.println(i+“*“+i+“ = “+(i*i)); Quadratzahlen von 1 bis 100
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int i; double d; for (i = 0; i < 10; i = i + 1) { ... } for (d = 13.5; d > 1.5; d = d / 2) for (i = 0; i < 10; i = i – 2)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int i; double d; for (i = 0; i < 10; i = i + 1) { ... } for (d = 13.5; d > 1.5; d = d / 2) for (i = 0; i < 10; i = i – 2) auch Kommazahlen möglich
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int i; double d; for (i = 0; i < 10; i = i + 1) { ... } for (d = 13.5; d > 1.5; d = d / 2) for (i = 0; i < 10; i = i – 2) auch Kommazahlen möglich Vorsicht: Endlosschleife
Java – Programmiersprache Informatik I : Software Java – Programmiersprache abkürzende Schreibweisen: i = i + 1; i = i – 1; d = d – 2; d = d / 3.2; d = d * 1.09; i = i + 5;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache abkürzende Schreibweisen: i = i + 1; i++; oder ++i; i = i – 1; d = d – 2; d = d / 3.2; d = d * 1.09; i = i + 5;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache abkürzende Schreibweisen: i = i + 1; i++; oder ++i; i = i – 1; i--; oder --i; d = d – 2; d = d / 3.2; d = d * 1.09; i = i + 5;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache abkürzende Schreibweisen: i = i + 1; i++; oder ++i; i = i – 1; i--; oder --i; d = d – 2; d-=2; d = d / 3.2; d = d * 1.09; i = i + 5;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache abkürzende Schreibweisen: i = i + 1; i++; oder ++i; i = i – 1; i--; oder –-i; d = d – 2; d-=2; d = d / 3.2; d/=3.2; d = d * 1.09; d*=1.09; i = i + 5; i+=5;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Schleifentypen: for – Schleife
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Schleifentypen: for – Schleife kennen wir bereits
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Schleifentypen: for – Schleife while – Schleife kennen wir bereits
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Schleifentypen: for – Schleife while – Schleife kennen wir bereits allgemeinere Form der for - Schleife
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Schleifentypen: for – Schleife while – Schleife do – while – Schleife kennen wir bereits allgemeinere Form der for - Schleife
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Schleifentypen: for – Schleife while – Schleife do – while – Schleife kennen wir bereits allgemeinere Form der for - Schleife andere Schleifenform Bedingung am Ende
Java – Programmiersprache Informatik I : Software Java – Programmiersprache while – Schleife: while (bedingung) { Anweisungen; }
Java – Programmiersprache Informatik I : Software Java – Programmiersprache while – Schleife: while (bedingung) { Anweisungen; } Solange bedingung erfüllt ist
Java – Programmiersprache Informatik I : Software Java – Programmiersprache while – Schleife: while (bedingung) { Anweisungen; } Solange bedingung erfüllt ist werden Anweisungen; ausgeführt
Java – Programmiersprache Informatik I : Software Java – Programmiersprache while – Schleife: while (bedingung) { Anweisungen; } Solange bedingung erfüllt ist werden Anweisungen; ausgeführt Anweisungen; müssen derart sein, daß bedingung irgendwann einmal nicht mehr erfüllt ist.
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife vs. while – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; }
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife vs. while – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } while (bedingung)
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife vs. while – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } while (bedingung) iteraktion;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache for – Schleife vs. while – Schleife: for (startaktion; bedingung; iteraktion) { Anweisungen; } startaktion; while (bedingung) iteraktion;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int i = 0; boolean b = false; while (i < 10) { ...; i++; } while (b == true) { ... } i = 0; while (i >= 0); { ...; i--; }
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int i = 0; boolean b = false; while (i < 10) { ...; i++; } while (b == true) { ... } i = 0; while (i >= 0); { ...; i--; } Vorsicht: Endlosschleife Der Strichpunkt hinter der Bedingung muss weg. Häufiger Fehler!
Java – Programmiersprache Informatik I : Software Java – Programmiersprache do – while – Schleife: do { Anweisungen; } while (bedingung);
Java – Programmiersprache Informatik I : Software Java – Programmiersprache do – while – Schleife: do { Anweisungen; } while (bedingung); Anweisungen; werden ausgeführt,
Java – Programmiersprache Informatik I : Software Java – Programmiersprache do – while – Schleife: do { Anweisungen; } while (bedingung); Anweisungen; werden ausgeführt, solange bedingung erfüllt.
Java – Programmiersprache Informatik I : Software Java – Programmiersprache do – while – Schleife: do { Anweisungen; } while (bedingung); Anweisungen; werden mindestens einmal ausgeführt Anweisungen; werden ausgeführt, solange bedingung erfüllt.
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int i = 0; boolean b = false; do { i++; ...; } while (i <= 10); } while (b != true);
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int wert1, wert2, wert3, wert4, wert5, wert6; wert1 = in.readInt(); wert2 = in.readInt(); wert3 = in.readInt(); wert4 = in.readInt(); wert5 = in.readInt(); wert6 = in.readInt();
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt?
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Eine Reihe von Messwerten einlesen?
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Eine Reihe von Messwerten einlesen? Was fällt auf?
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Eine Reihe von Messwerten einlesen? Was fällt auf? Alle Messwerte haben den denselben Datentyp Schleifen sind so nicht anwendbar
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Was tut dieser Programmausschnitt? Eine Reihe von Messwerten einlesen? Was fällt auf? Alle Messwerte haben den denselben Datentyp Schleifen sind so nicht anwendbar Eine neue Art von Datentyp, eine Art Ansammlung von Variablen des selben Datentyps wäre gut.
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Arrays (Felder): Deklaration: datentyp[] variablenname;
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Arrays (Felder): Deklaration: datentyp[] variablenname; Speicher reservieren: variablenname = new datentyp[größe];
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Arrays (Felder): Deklaration: datentyp[] variablenname; Speicher reservieren: variablenname = new datentyp[größe]; Arraygröße: variablenname.length
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Arrays (Felder): Deklaration: datentyp[] variablenname; Speicher reservieren: variablenname = new datentyp[größe]; Arraygröße: variablenname.length Elementzugriff: variablenname[element]
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Arrays (Felder): Deklaration: datentyp[] variablenname; Speicher reservieren: variablenname = new datentyp[größe]; Arraygröße: variablenname.length Elementzugriff: variablenname[element] Elemente: variablenname[0] ... variablenname[größe-1]
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: ... int[] i_ar; int i = 10; i_ar = new int[20]; String[] st_ar; st_ar = new String[i]; for (i = 0; i < st_ar.length; i ++) st_ar[i] = in.readInt();
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: int[] wert; int i; wert = new int[6]; for (i = 0; i < 6; i++) wert[i] = in.readInt();
Java – Programmiersprache Informatik I : Software Java – Programmiersprache Beispiele: ... int[] tage_pro_monat = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int monat, tag; boolean datum = false; monat = in.readInt(); tag = in.readInt(); if ((monat >= 1) && (monat <= 12)) { if ((tag >= 1) && (tag <= tage_pro_monat[monat-1])) datum = true; }