Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

Ähnliche Dokumente
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Einstieg in die Informatik mit Java

Programmieren mit. Java. Lars Knipping. April 2003

Programmieren mit. Java. Lars Knipping. September 2004

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Einstieg in die Informatik mit Java

Schleifen Datenfelder (Arrays) Verzweigungen

Einstieg in die Informatik mit Java

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

3. Anweisungen und Kontrollstrukturen

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Java Anweisungen und Ablaufsteuerung

Sprachkonstrukte Verzweigungen und Array-Strukturen

Abschnitt 5. Grundlagen der funktionalen & imperativen Programmierung

Java: Eine kurze Einführung an Beispielen

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Java Ablaufsteuerung (Beispiele)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

2 Teil 2: Nassi-Schneiderman

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Objektorientierte Programmierung

2 Programmieren in Java I noch ohne Nachbearbeitung

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

3.2 Datentypen und Methoden

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Vorlesung Programmieren

Javakurs für Anfänger

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Schleifen in C/C++/Java

Anweisungen zur Ablaufsteuerung

4.4 Imperative Algorithmen Verzweigung und Iteration

Vorkurs Informatik WiSe 16/17

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Javakurs für Anfänger

Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Vorlesung Programmieren

Elementare Konzepte von

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Java I Vorlesung Imperatives Programmieren

Algorithmen und Datenstrukturen II

Schleifen in C/C++/Java

Programmiertechnik Kontrollstrukturen

Java - Programmierung - Prozedurale Programmierung 1

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Einführung in die Programmierung für NF. Arrays

System.out.println("TEXT");

2.7 Anweisungen. x+2; // Java-Fehler, korrekt in C oder C++

4.4 Imperative Algorithmen Prozeduren

PROGRAMMIERUNG IN JAVA

Vorkurs Informatik WiSe 17/18

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]

Objektorientierte Programmierung und Modellierung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Arrays und Schleifen

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Wo sind wir? Kontrollstrukturen

Kontrollstrukturen. Wo sind wir? Anweisung mit Label. Block. Beispiel. Deklarationsanweisung

Einführung in die Programmierung II. 3. Kontrollstrukturen

Programmieren I. Kapitel 5. Kontrollfluss

Objektorientierung (OO)

Einführung in die Programmierung Wintersemester 2011/12

3. Grundanweisungen in Java

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

2.7 Anweisungen. x+2; // Java-Fehler, korrekt in C oder C++ Wolfgang Effelsberg Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.

Welche Informatik-Kenntnisse bringen Sie mit?

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Transkript:

Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31

... sonst... if (condition) statement1 else statement2 condition false true statement1 statement2 if (x < y) min = x; else min = y; 32

ansonsten, falls... I statt if (condition1) statement1 else if (condition2) statement2 sieht man oft if (condition1) statement1 else if (condition2) statement2 33

ansonsten, falls... II condition1 false condition2 false... true true statement1 statement2 statementn... if (degreecelsius < 8) System.out.println("zu kalt fuer Wein"); else if (degreecelsius > 18) System.out.println("zu warm fuer Wein"); else if (degreecelsius <= 12) System.out.println("OK fuer Weissen"); else if (degreecelsius >= 15) System.out.println("OK fuer Roten"); else System.out.println("Weissherbst?"); 34

Blöcke Ein Block faßt eine Sequenz von Anweisungen zu einer zusammen: { list of statements Blöcke können geschachtelt werden. if (increment) { ++x; ++y; System.out.println("new x: "+x); System.out.println("new y: "+y); 35

Einrückungsfalle if (!handley) if (incrementx) ++x; else // Einrueckung irrefuehrend ++y; Besser gleich klammern: // jetzt richtig: if (!handley) { if (incrementx) { ++x; else { ++y; 36

Sichtbarkeitsbereiche (scopes) Ein Bezeichner ist ab seiner Deklaration sichtbar, und zwar bis zum Ende des Blocks in dem er vereinbart wurde. int i = 0; { int j = i; // OK { int k = i; // OK int k = 0; // Fehler: k schon belegt j = k; // Fehler: k nicht bekannt int k = 0; // OK: k neu belegen ++j; // Fehler: j nicht bekannt ++i; // OK 37

Solange I while (condition) statement condition false true statement 38

Solange II // berechne ganzzahligen log von n // zur Basis 2 fuer n > 0 int log = 0; while (n > 1) { ++log; n /= 2; System.out.println("log = "+log); 39

Mach...Solange I do statement while (condition); statement condition true false 40

Mach...Solange II // berechne ganzzahligen log von n // zur Basis 2 fuer n > 0 int log =-1; do { ++log; n /= 2; while (n > 0); System.out.println("log = "+log); 41

Laufanweisung (For-Schleife) I for (init;condition;atend) statement init condition false atend true statement init und atend sind Ausdrücke (für init auch Variablendeklaration für einen Typ erlaubt); falls mehrteilig durch,s getrennt 42

Laufanweisung (For-Schleife) II // berechnet n! (n Fakultaet), // d.h. 1*2*...*n fuer n>=0 int fakultaet = 1; for (int i=0; i<n; ++i) fakultaet *= i; System.out.println(n+"! = "+fakultaet); 43

Laufanweisung (For-Schleife) III init, condition und atend können auch leer sein, die leere Bedingung (condition) gilt als konstant wahr // unendliche Schleife: for (;;) { // do something // ein paar Zweierpotenzen for (int i=0, j=1; i<=64; ++i, j*=2) System.out.println("2 hoch "+i+"="+j); 44

Auswahlanweisung I switch (month) { case 1: // ein sog. case-label System.out.println("Januar"); break; case 2: System.out.println("Februar"); break; // usw.... case 12: System.out.println("Dezember"); break; default: // das default-label System.out.println("Hey:"); System.out.println("ungueltiger Monat!"); break; 45

Auswahlanweisung II Auswahl über Ausdruck vom Typ char, byte, short oder int beliebige Reihenfolge der Label (auch default) kein Label darf doppelt vorkommen welche Label (z.b. ob default) vorkommen, ist beliebig ohne break: fallthrough letztes break optional 46

Auswahlanweisung III: Fallthrough // fallthroughs: for (int i=0; i<3; ++i) { System.out.println("i = "+i) switch (i) { case 0: System.out.println("case 0"); case 1: System.out.println("case 1"); case 2: System.out.println("case 2"); ergibt: i = 0 case 0 case 1 case 2 i = 1 case 1 case 2 i = 2 case 2 47

breaks in Schleifen break;-anweisung kann auch verwendet werden um Schleifen abzubrechen (while, do und for- Schleifen) for (int i=0; i<n; ++i) { // irgendwas if (alreadytoolate) break; // weitermachen Bei geschachtelten Schleifen (oder einem switch innerhalb einer Schleife) wird immer das innerste Konstrukt beendet 48

Sprung aus der Tiefe labeled breaks werden bei geschachtelten Schleifen (bzw.switch) verwendet, um das entsprechende äußere Konstrukt zu beenden for (int i=0; i<n; ++i) { middlefor: // label fuer 2. for for (int j=0; j<n; ++j) { for (int k=0; k<n; ++k) { //... if (jumpaway) break middlefor; //... // hierhin breaken wir 49

Weitermachen! continue; wird verwendet, um wieder an den Anfang der Schleife zu springen // Schleierfahndung... for (int id=0; id<n; ++id) { // berechne fuer id // boolean currissuspect if (!currissuspect) continue; // check next // mal id genauer ansehen //... continue; kann wie break; in der Variante mit Label verwendet werden weitere Sprunganweisung (return): später 50

Felder (Arrays) deklarieren Arrays sind n-tupel eines Datentyps, d.h. die Werte werden geordnet im Array abgelegt. Der Zugriff erfolgt über Indizes. Deklaration eines (eindimensionalen) Array vom Typ type (Größe/Inhalt noch nicht festgelegt!): type[] identifier; alternativ auch die C-Schreibweise: type identifier[]; int[] a; // noch nicht initialisiert! int b[]; // wie in C 51

Arrays anlegen neues Array mit n Elementen wird angelegt durch new identifier[], die Elemente werden dabei mit 0 (bzw. false oder null) initialisiert. Bsp.: int[] a1; a1 = new int[5]; // int array mit 5 Elementen // boolean array mit 8192 Elementen: boolean[] a2 = new boolean[8*1024]; 52

Arrays initialisieren explizite Initialisierung durch { valuelist Bsp.: String[] dayofweek = {"Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"; // nicht moeglich fuer Zuweisung int[] dayspermonth; dayspermonth = // Compilerfehler {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ; // aber: dayspermonth = // OK new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ; 53

Arrays: Elementzugriff Zugriff auf das (i+1)-te Element des Arrays a: a[i] Elementanzahl von Array a: a.length, Datentyp der Länge ist int Bsp.: // alle Elemente von a ausgeben: for (int i=0; i<a.length; ++i) System.out.println(a[i]); // setzen der Elemente von a: for (int i=0; i<a.length; ++i) a[i] = i+1; 54

Mehrdimensionale Arrays double[][] matrix = new double[3][3]; int[][][] voxel = new int[100][100][100]; boolean[][] field = { {true, false, {false, true mehrdimensionale Arrays sind Arrays von Arrays; entsprechend brauchen sie nicht rechteckig in ihrer Größe sein int[][] triangle = new int[100][]; for (int i=0; i<triangle.length; ++i) triangle[i] = new int[i]; int[][] a = { {, {1, 2, 3, {9, 27 ; // Ausgabe: for (int i=0; i<a.length; ++i) for (int j=0; j<a[i].length; ++j) System.out.println(a[i][j]); 55

Test For Echo der Stringarray aus main enthaehlt die Kommandozeilenargumente // (fast) wie das Echo-Programm von Unix public class Echo { public static void main(string[] argv) { for (int i=0; i<argv.length; ++i) System.out.print(argv[i]+" "); System.out.println(); wird das Programm mit java Echo test for echo aufgerufen, so steht in argv der Wert {"test", "for", "echo" Ausgabe des Programms: test for echo 56

Mal was Einlesen... Integer.parseInt(string) wandelt den String string in einen int um, Double.parseDouble(string) wandelt den String string in einen double-wert um public class Add { public static void main(string[] argv) { int sum = 0; for (int i=0; i<argv.length; ++i) sum += Integer.parseInt(argv[i]); System.out.println("sum is "+sum); 57