Programmierkurs Java

Ähnliche Dokumente
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

3. Anweisungen und Kontrollstrukturen

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

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

2.5 Programmstrukturen Entscheidung / Alternative

Schleifen in C/C++/Java

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

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

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Kapitel 5. Programmierkurs. Kontrollstrukturen. Arten von Kontrollstrukturen. Kontrollstrukturen Die if-anweisung Die switch-anweisung

C- Kurs 04 Anweisungen

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

Vorlesung Programmieren

Einfache Rechenstrukturen und Kontrollfluss II

Objektorientierte Programmierung

5. Elementare Befehle und Struktogramme

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Annehmende Schleife do while

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

Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

RO-Tutorien 3 / 6 / 12

6. Iteration (Schleifenanweisungen)

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Entwurf von Algorithmen - Kontrollstrukturen

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Übersicht Programmablaufsteuerung

Objektorientierte Programmierung OOP Programmieren mit Java

Programmieren I + II Regeln der Code-Formatierung

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

C.3 Funktionen und Prozeduren

Kapitel 3: Variablen

Welche Informatik-Kenntnisse bringen Sie mit?

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

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

Primitive Datentypen

Informatik I Übung, Woche 40

Grundlagen der Programmierung

Präzedenz von Operatoren

3.4 Ablaufsteuerung (Kontrollstrukturen)

5. Tutorium zu Programmieren

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

4. Ablaufsteuerung (Kontrollstrukturen)

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Werkzeuge zur Programmentwicklung

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Kleine Anekdote. Schleifen in C

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Objektorientierte Programmierung OOP Programmieren mit Java

BKTM - Programmieren leicht gemacht.

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

3. Algorithmenentwurf und JAVA. Informatik II für Verkehrsingenieure

Programmieren in C/C++ und MATLAB

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Fallunterscheidung: if-statement

C/C++ Programmierung

2. Programmierung in C

Tutorium für Fortgeschrittene

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Steuerungsstrukturen. Ablaufsteuerung der PL/SQL Ausführung. IF Anweisungen. Einfaches IF

JAVA-Datentypen und deren Wertebereich

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Tutorium Rechnerorganisation

Webbasierte Programmierung

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

INE1 Wiederholungen while, do...while, for

Einstieg in die Informatik mit Java

Excel VBA. Teil Zusammenfassung! Was wir können sollten! V

Kontrollstrukturen in PL/SQL

Einführung in die Programmierung

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Einführung in die C++ Programmierung für Ingenieure

Erwin Grüner

Sin-Funktion vgl. Cos-Funktion

Schleifenanweisungen

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Imperative vs. Funktionale Programmierung

Die Programmiersprache C99: Zusammenfassung

Kontrollstrukturen, Strukturierte Programmierung

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.

Einführung in die Programmierung am Beispiel von Java

Steuerung von Programmabläufen. Vorlesung Computergestützte Mathematik zur Linearen Algebra. Lehrstuhl für Angewandte Mathematik Sommersemester 2009

Man kann bei der Deklaration einen Wert der Variablen angeben oder später den Wert zuweisen. Beide Befehlsfolgen leisten dasselbe:

Algorithmen & Programmierung. Rekursive Funktionen (1)

Transkript:

Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer

Kontrollstrukturen Wichtig: bedingte Ausführung und Wiederholungsanweisung Java bietet mehrere Variante an Sind äquivalent und ineinander überführbar Sind jeweils eine Anweisung Bedingte Ausführung if switch Wiederholungsanweisung while do... while for #2

Bedingte Ausführung: if Syntax: if (boolescher-ausdruck) anweisung; boolescher-ausdruck: Ausdruck, der zu boolean Wert evaluiert (true/false) Anweisung: Einzelne Anweisung (kann auch eine Blockanweisung sein) Beispiel für boolesche Ausdrücke true 1 > 2 i!= 12 u 2 > z - 3 Beispiele für if-anweisung if (true) System.out.println( Tautologie ); int i = 3; if (2 * i > 1000) i = i / 2; #3

Fallstrick Beispiel: int i=3; if(2*i > 1000) i = i / 2; i = 3 * i; Auch wenn es optisch nicht so aussieht, aber: i = 3 * i ist nicht mehr Teil der if-anweisung Wird also IMMER ausgeführt, unabhängig vom Wert von boolescher-ausdruck Wichtig: Formatierung hat nichts mit Syntax zu tun Dennoch sollte man es optisch besser formatieren Besser: int i = 3; if(2 * i > 1000) i = i / 2; i = 3 * i; Aber: was wenn das gar nicht so gewollt ist? #4

#5 Fallstrick: Lösung: Blockanweisung Wenn i = 3 * i Teil der if-anweisung werden soll, hilft eine Blockanweisung int i = 3; if(2 * i > 1000) { i = i / 2; i = 3 * i; } Besser formatiert (Java Coding Style) int i = 3; if(2 * i > 1000) { i = i / 2; i = 3 * i; } Generell sinnvoll, Blockanweisungen zu benutzen z.b. falls man später noch eine Anweisung hinzufügt

#6 Variante der if-anweisung (if...then...else) Oft soll entweder das eine oder das andere gemacht werden if (a > 100) a = a 100; if (a <= 100) System.out.println( a zu klein ); Probleme Gleiche Bedingung muss zweimal formuliert werden (1 x positiv, 1x negativ) Wenn die erste Anweisung a modifiziert (wie hier geschehen), dann kommt es ggf. zu ungewolltem Verhalten Daher Variante if (boolescher-ausdruck) anweisung1; else anweisung2; Wenn boolescher-ausdruck true ist, dann wird anweisung1 ausgeführt, ansonsten anweisung2 if (a>100) a=a 100; else System.out.println( a zu klein );

#7 Variante der if-anweisung (if...then...else) if (boolescher-ausdruck) anweisung1; else anweisung2; Beide Anweisungen können wieder beliebige Ausdrücke sein Also z.b. auch wieder if-anweisungen Beispiel: if(a>100) if(b>100) b=b+a; else a=a*2; Aber: zu welchem if gehört das else?

Variante der if-anweisung (if...then...else) Lösung if (a > 100) if (b > 100) b = b + a; else a = a * 2; Wichtig: explizit machen, was gemeint ist Platzsparen muss nicht sein Lieber den Code besser lesbar machen Variante 1 if (a > 100) { if (b > 100) { b = b + a; } else { a = a * 2; } } Variante 2 if (a > 100) { if (b > 100) { b = b + a; } } else { a = a * 2; } #8

#9 if-anweisung: Weitere Beispiele Beispiel: if if (i > 12 ) { System.out.println("i ist größer als 12"); i = 123 * i 345; } Beispiel: if-then-else if (i > 12 ) { System.out.println("i ist größer als 12"); i = 0; } else { System.out.println("i ist kleiner oder gleich 12"); i++; }

#10 Alternative zu if: switch-anweisung Nach case kann nur eine Konstante stehen, keine Variable Vorsicht: nicht das break vergessen Kann z.b. anstelle von langen if-else- Anweisungen verwendet werden Code wird dadurch kürzer und (evtl.) verständlicher

Kontrollstrukturen: Wiederholung While-Schleife Wiederhole, solange Ausdruck wahr Syntax: while (boolescher-ausdruck) anweisung1; Beispiele while (i > 10) i--; while (i > 10) { System.out.println(i); i--; } #11

#12 Kontrollstrukturen: Wiederholung Do-While-Schleife Wie while, jedoch mindestens einmal ausgeführt Syntax: do anweisung1; while(boolescher-ausdruck); Beispiele do i--; while (i > 10); do { System.out.println(i); i--; } while (i > 10);

Beispiel: while und do...while #13

Kontrollstrukturen: Wiederholungen Abseits von while und do...while gibt es eine weitere Wiederholungsanweisung: for Ist wahrscheinlich die am meisten benutzte Variante while, do...while und for lassen sich ineinander überführen Welche Variante man nutzt ist daher egal Allerdings ist for expliziter als while/do-while und prägnanter Syntax for(<initialization>; <termination>; <increment>) statement; <initialization> Einmal zu Beginn der Schleife ausgeführt <termination> Abbruchbedingung (boolescher Ausdruck) <increment> Nach jedem Durchlauf ausgeführt #14

Kontrollstrukturen: Wiederholungen Beispiel: Wertebereich durchlaufen <initialization> int i = 0 Deklariert und Initialisiert Variable i <termination> i < 10 Abbruchbedingung <increment> i++ Erhöht Wert von i nach jedem Durchlauf Ablauf <initialization>(i: 0), <termination> (false), <statement>, <increment> (i: 1), <termination> (false), <statement>, <increment> (i: 2),..., <increment> (i: 10), <termination> (true) Ende Initialisierung Bedingung Modifikation for (int i = 0; i < 10; i++){ System.out.println(i); } #15

Kontrollstrukturen: Wiederholungen Beispiele: for-anweisung for (int i = 0; i < 100; i = i * i) System.out.println("i=" + i); for ( ; i < 10; --i); for (;;;); Endlosschleife #16

Beispielprogramm Ziel: Einlesen einer max. 20 Zeichen langen Zeichenfolge und Ausgabe in umgekehrter Reihenfolge Algorithmus Erzeuge einen Puffer für max. 20 Zeichen Lese ein Zeichen vom Keyboard ein Solange noch Platz im Puffer ist und nicht Enter gedrückt wurde Speichere Zeichen in nächsten freien Platz im Puffer Lese nächstes Zeichen vom Keyboard Setze Variable i auf Index des letzten Zeichens Solange i >= 0 ist Gebe Zeichen an Index i aus Dekrementiere i #17

Quellcode #18

#19