Tag 2 Repetitorium Informatik (Java)

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

Tag 4 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java)

Intensivübung zu Algorithmen und Datenstrukturen

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Java I Vorlesung Imperatives Programmieren

JAVA-Datentypen und deren Wertebereich

Datentypen und Operatoren

Funktionen nur wenn dann

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 4 Repetitorium Informatik (Java)

Datentypen: integer, char, string, boolean

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Repetitorium Informatik (Java)

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

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

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

Funktionen nur wenn dann

Einstieg in die Informatik mit Java

Processing Info zu Variablen und Bedingungen

Einstieg in die Informatik mit Java

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Tag 3 Repetitorium Informatik (Java)

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken

Javakurs für Anfänger

Variablen, Konstanten und Datentypen

Java Einführung Operatoren Kapitel 2 und 3

2.5 Primitive Datentypen

Einstieg in die Informatik mit Java

Kapitel 3: Variablen

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

Grundlagen der Programmierung

Programmierkurs Python I

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

Der Datentyp String. Stringvariable und -vergleiche

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Programmieren lernen mit Visual Basic

Greenfoot: Verzweigungen

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Vorkurs Informatik WiSe 16/17

Einstieg in die Informatik mit Java

Diana Lange. Generative Gestaltung Operatoren

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Einstieg in die Informatik mit Java

Grundlagen der Programmierung

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

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

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Welche Informatik-Kenntnisse bringen Sie mit?

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Modellierung und Programmierung 1

Einführung in C. EDV1-04C-Einführung 1

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

1 Klassen anlegen und Objekte erzeugen

Einfache Rechenstrukturen und Kontrollfluß

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

Brückenkurs Programmieren

Programmierkurs Python I

Einstieg in die Informatik mit Java

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Java: Syntax-Grundlagen III

Programmieren für Wirtschaftswissenschaftler SS 2015

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

Teil I. Konzepte imperativer Programmierung

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

1 Klassen anlegen und Objekte erzeugen

5.4 Klassen und Objekte

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Wo sind wir? Übersicht lexikale Struktur von Java

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Elementare Konzepte von

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Übungsblatt 2. Java Vorkurs (WS 2017)

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

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

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Informatik I: Einführung in die Programmierung

Einstieg in die Informatik mit Java

System.out.println("TEXT");

Dr. Monika Meiler. Inhalt

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Einstieg in die Informatik mit Java

Informatik I - Einstiegskurs

Einstieg in die Informatik mit Java

Projekt 3 Variablen und Operatoren

Transkript:

Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018

Übersicht Zeichen und Zeichenketten Zeichen char Zeichenketten String Ausgabe-Anweisungen Vergleiche und bedingte Anweisungen Wahrheitswerte boolean Vergleiche Logische Operatoren Bedingte Anweisungen Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 2 / 37

Zeichen und Zeichenketten

Einzelne Zeichen: Datentyp char char: primitiver Datentyp zur Speicherung von Zeichen (z.b. Buchstaben) Größe im Speicher: 2 Byte speichert genau ein Unicode-Zeichen (s.u.) char-zeichen werden in einfache Hochkommata eingeschlossen Beispiel char zeichen = p ; für besondere Zeichen werden sog. Escape-Sequenzen verwendet: \n Zeilenumbruch \t (horizontaler) Tabulator \\ Backslash... Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 4 / 37

Unicode Rechnen mit Zeichen jedes Zeichen wird intern durch eine positive, ganze Zahl repräsentiert Zuordnung gemäß den Unicode Code-Points der Basic Multilingual Plane https://en.wikipedia.org/wiki/basic_multilingual_plane in Java kann man mit Zeichen rechnen die bekannten Operatoren funktionieren auch für chars Achtung: das Ergebnis einer solchen Berechnung ist vom Typ int! Achtung: das Zeichen 0 entspricht nicht der Zahl 0! 0 48, 1 49,..., 9 57 Beispiel char zeichen1 = A ; // = 65 char zeichen2 = 0 ; // = 48 int zeichen1pluszeichen2 = zeichen1 + zeichen2 ; // = 113 Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 5 / 37

Beispiel zum Rechnen mit Zeichen die Zeichen des lateinischen Alphabets haben aufeinanderfolgende Nummern A 65, B 66,..., Z 90 a 97, b 98,..., z 122 damit lässt sich einfach die Position eines Zeichens im Alphabet bestimmen Der wievielte Buchstabe im Alphabet? char zeichen = P ; // = 80 int positiondeszeichens = zeichen - A + 1; // = 16 Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 6 / 37

Zeichenketten: Datentyp String String: Datentyp für die Speicherung von Zeichenketten Aneinanderreihung mehrerer chars Zeichenketten werden in doppelte Anführungszeichen eingeschlossen auch dann, wenn die Zeichenkette aus nur einem Zeichen besteht! Achtung: ein String mit einem Zeichen ist etwas völlig anderes als ein char mit demselben Zeichen! Beispiel String name = " Hans Mustermann "; String zweizeilen = " Erste Zeile \ nzweite Zeile "; String einzeichen = " X"; String leerezeichenkette = ""; Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 7 / 37

Nochmal: Operatoren mit dem +-Operator können zwei Strings aneinander gehängt werden man sagt: die beiden Zeichenketten werden konkateniert das funktioniert auch dann, wenn einer der Operanden kein String ist Java wandelt diesen Operanden automatisch in einen String um......und führt dann die Konkatenation durch Beispiel int laenge = 7; int breite = 5; int hoehe = 4; int volumen = laenge * breite * hoehe ; String text = " Der Quader hat ein Volumen von " + volumen ; /* = " Der Quader hat ein Volumen von 140" ( der Wert der Variable volumen wird automatisch in eine Zeichenkette umgewandelt ) */ Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 8 / 37

Ausblick: Klassen der Datentyp String ist eine Klasse aus der Java-Standardbibliothek und damit kein primitiver Datentyp... Details zu Klassen gibt es in den kommenden Tagen... hier nur ein paar Grundlagen, die wir für Strings benötigen: Klassen können Methoden haben Unterprogramme mit Funktionalität, die konzeptuell zur Klasse gehören können Argumente als Eingabewerte entgegennehmen können ein Ergebnis berechnen und als Ergebniswert zurückgeben diese können von außen aufgerufen werden (vereinfacht): variable.methode(argument1, argument2,...) Verwendung der Funktionalität der Methode an anderer Stelle Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 9 / 37

Länge eines Strings bestimmen Länge eines Strings bestimmen length() berechnet die Länge einer Zeichenkette Ergebnis ist eine Ganzzahl vom Typ int Anzahl der Zeichen in der Zeichenkette Beispiel String text = " Ein beliebiger String "; int anzahlderzeichen = text. length (); // = 21 Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 10 / 37

Teil-Zeichenkette suchen Teil-Zeichenkette suchen indexof() sucht das erste Vorkommen eines Teil-Strings in einem anderen String Ergebnis ist eine Ganzzahl vom Typ int wenn Teil-String nicht gefunden wird: -1 ansonsten: Position des Teil-Strings, beginnend bei 0 Beispiel String text = " Such mich doch!"; int p1 = text. indexof (" mich "); // = 5 int p2 = text. indexof (" dich "); // = -1 Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 11 / 37

Vergleich zweier Strings Vergleich zweier Strings compareto() vergleicht zwei Strings hinsichtlich ihrer Sortierung Reihenfolge wie im Telefonbuch aber: Kleinbuchstaben kommen nach Großbuchstaben! "Erlangen" < "Hamburg" < "Hamburger" < "aber" Ergebnis ist eine Ganzzahl vom Typ int wenn beide Strings gleich sind: 0 wenn der erste String kleiner ist: negative Zahl wenn der erste String größer ist: positive Zahl Beispiel String text = " ABC "; int c1 = text. compareto (" ABC "); // =0 int c2 = text. compareto (" AAA "); // =1 (-> positiv ) (" ABC " > " AAA ") int c3 = text. compareto (" aaa "); // = -32 (-> negativ ) (" ABC " < " aaa ") Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 12 / 37

Wir wissen von gestern: Eine Ausgabe erscheint nur dann am Bildschirm, wenn eine entsprechende Ausgabeanweisung im Programm enthalten ist. Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

Ausgabe-Anweisungen Ausgabeanweisungen System. out. print (...); // OHNE Zeilenumbruch am Ende System. out. println (...); // MIT Zeilenumbruch am Ende Beispiel int laenge = 7; int breite = 5; int hoehe = 4; int volumen = laenge * breite * hoehe ; System.out. println (" Laenge : " + laenge ); System.out. println (" Breite : " + breite ); System.out. println (" Hoehe : " + hoehe ); System.out. print (" Ergibt ein Volumen von : "); System. out. println ( volumen ); // <- geht nicht nur f ü r Strings! Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 14 / 37

Vergleiche und bedingte Anweisungen

Wahrheitswerte: Datentyp boolean boolean: primitiver Datentyp zur Speicherung von Wahrheitswerten Größe im Speicher: 1 Byte zwei mögliche Werte: true (wahr) oder false (falsch) Beispiel boolean programmierenisteinfach = false ; boolean programmierenmachtspass = true ; Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 16 / 37

Vergleiche von Zahlen für die numerischen Datentypen gibt es die folgenden Vergleichsoperatoren: das Ergebnis eines solchen Vergleichs ist stets ein boolean-wert Operator Bedeutung Beispiel Ergebnis == gleich 13 == 3 false!= ungleich 13!= 3 true < kleiner 13 < 3 false > größer 13 > 3 true <= kleiner-gleich 13 <= 3 false >= größer-gleich 13 >= 3 true Achtung Zuweisung mit =, Vergleich mit ==. Diese Operatoren funktionieren nicht für Strings. Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 37

Beispiel zum Vergleichen von Zahlen Frage Handelt es sich bei einem Rechteck mit gegebenen Kantenlängen um ein Quadrat? Lösung Ein Rechteck ist ein Quadrat, wenn seine Breite und seine Höhe gleich sind. In Java int breite = 5; int hoehe = 6; boolean istquadrat = ( breite == hoehe ); // = false Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 18 / 37

Logische Operatoren für den booleschen Datentypen gibt es logische Operatoren verknüpfen zwei boolesche Werte zu einem neuen booleschen Wert komplexe/zusammengesetzte boolesche Ausdrücke Beispiel 1: Logisches Und Die Verwendung des Systems wird nur gewährt, wenn... der Benutzername stimmt UND das Passwort stimmt. Beispiel 2: Logisches Oder Eine Ware kann nur gekauft werden, wenn... genügend Bargeld vorhanden ist ODER genügend Geld auf dem Konto vorhanden ist. Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 19 / 37

Logisches Und logisches Und &&-Operator wahr, wenn beide Operanden wahr sind falsch, wenn mindestens ein Operand falsch ist Wahrheitstabelle A B A && B false false false false true false true false false true true true Beispiel boolean verwendungerlaubt = ( benutzernamekorrekt && passwortkorrekt ); Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 20 / 37

Logisches Oder logisches Oder -Operator wahr, wenn mindestens ein Operand wahr ist falsch, wenn beide Operanden falsch sind Wahrheitstabelle A B A B false false false false true true true false true true true true Beispiel boolean kaufmoeglich = ( genuegendbargeld genuegendaufdemkonto ); Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 21 / 37

Logische Negation logische Negation!-Operator einstelliger Operator, d.h. nur ein Operand dreht den Wahrheitswert um Wahrheitstabelle A!A false true true false Beispiel boolean istkeinquadrat =!( istquadrat ); Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 22 / 37

Auswertungsreihenfolge Auswertungsreihenfolge: 1 Punkt -Operatoren: *, /, % 2 Strich -Operatoren: +, - 3 Vergleichs-Operatoren: ==,!=, <, <=, >, >= 4 logisches Und : && 5 logisches Oder : mit Klammern kann die Auswertungsreihenfolge beeinflusst werden lieber zu viele Klammern verwenden als zu wenige... Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 23 / 37

Auswertungsreihenfolge: Beispiel Natürlichsprachliche Anforderung Eine Ware kann nur dann gekauft werden, wenn diese auf Lager ist (Variable auflager) und wenn genügend Bargeld (Variable genuegendbargeld) oder genügend Geld auf dem Konto (Variable genuegendaufdemkonto) vorhanden ist. Falsch (Wieso?) boolean kaufmoeglich = auflager && genuegendbargeld genuegendaufdemkonto ; Richtig boolean kaufmoeglich = auflager && ( genuegendbargeld genuegendaufdemkonto ); Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 24 / 37

Bedingte Anweisungen bisher: strikt sequentielle Ausführung aller Anweisungen dabei wird jede Anweisung genau einmal ausgeführt manchmal sollen aber Anweisungen nur dann ausgeführt werden, falls eine bestimmte Bedingung erfüllt ist Rabatt nur dann abziehen, falls der Einkaufswert über 200 Euro liegt Verwendung nur dann erlauben, falls Benutzername und Passwort korrekt Meldung nur dann anzeigen, falls ein Fehler aufgetreten ist... bedingte Anweisung bzw. Verzweigung als erste Kontrollstruktur Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 25 / 37

Bedingte Anweisungen in Java (1) Syntax: if-anweisung mit else AnweisungenDavor ; /* Bedingung ist ein beliebiger boolean - Ausdruck ( z. B. Vergleich ) */ if ( Bedingung ) { AnweisungenWahr ; } else { AnweisungenFalsch ; } AnweisungenDanach ; Ablaufdiagramm AnweisungenDavor true Bedingung false AnweisungenWahr AnweisungenFalsch AnweisungenDanach Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 26 / 37

Bedingte Anweisungen in Java (2) Syntax: if-anweisung ohne else Ablaufdiagramm AnweisungenDavor ; /* Bedingung ist ein beliebiger boolean - Ausdruck ( z. B. Vergleich ) */ if ( Bedingung ) { AnweisungenWahr ; } AnweisungenDanach ; AnweisungenDavor Bedingung false true AnweisungenWahr AnweisungenDanach Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 27 / 37

Ein paar Hinweise if ( Bedingung ) { int a; } die geschweiften Klammern markieren einen Block auf richtige Einrückung nach Konvention achten! Klammern optional, wenn der Block aus einer einzigen Anweisung besteht aber lieber immer Klammern verwenden... auf die korrekte Syntax achten: kein Semikolon nach der Bedingung oder den Blöcken die Bedingung muss in einem Paar runder Klammern stehen innerhalb eines Blocks deklarierte Variablen sind außerhalb nicht gültig im Beispiel existiert die Variable a nach dem if nicht mehr Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 28 / 37

Beispiele zu bedingten Anweisungen (1) Ziel Für ein Rechteck mit gegebenen Kantenlängen soll bestimmt werden, ob es sich um ein Quadrat handelt, und eine entsprechende Meldung ausgegeben werden. Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 29 / 37

Beispiele zu bedingten Anweisungen (1) Ziel Für ein Rechteck mit gegebenen Kantenlängen soll bestimmt werden, ob es sich um ein Quadrat handelt, und eine entsprechende Meldung ausgegeben werden. Mögliche Lösung 1 int laenge =...; int breite =...; boolean istquadrat = ( laenge == breite ); if ( istquadrat ) { System. out. println (" Quadrat."); } else { System. out. println (" Kein Quadrat."); } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 29 / 37

Beispiele zu bedingten Anweisungen (1) Ziel Für ein Rechteck mit gegebenen Kantenlängen soll bestimmt werden, ob es sich um ein Quadrat handelt, und eine entsprechende Meldung ausgegeben werden. Mögliche Lösung 2 int laenge =...; int breite =...; if ( laenge == breite ) { System. out. println (" Quadrat."); } else { System. out. println (" Kein Quadrat."); } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 29 / 37

Beispiele zu bedingten Anweisungen (2) Ziel Bei einem Betrag von mindestens 200 Euro soll ein Rabatt von 5% gewährt werden. Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 30 / 37

Beispiele zu bedingten Anweisungen (2) Ziel Bei einem Betrag von mindestens 200 Euro soll ein Rabatt von 5% gewährt werden. Mögliche Lösung double betrag =...; if ( betrag >= 200.00) { betrag = betrag * 0.95; } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 30 / 37

Beispiele zu bedingten Anweisungen (3) Ziel Für zwei Zahlen a und b soll der Betrag der Differenz bestimmt werden. Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 31 / 37

Beispiele zu bedingten Anweisungen (3) Ziel Für zwei Zahlen a und b soll der Betrag der Differenz bestimmt werden. Mögliche Lösung 1 int a =...; int b =...; int absolutdifferenz ; if (a > b) { absolutdifferenz = a - b; } else { absolutdifferenz = b - a; } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 31 / 37

Beispiele zu bedingten Anweisungen (3) Ziel Für zwei Zahlen a und b soll der Betrag der Differenz bestimmt werden. Mögliche Lösung 2 int a =...; int b =...; int absolutdifferenz = a - b; if ( absolutdifferenz < 0) { absolutdifferenz = - absolutdifferenz ; } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 31 / 37

Verkettete if-anweisungen if-anweisungen können auch beliebig lang verkettet werden hilfreich, wenn auf mehr als zwei Fälle überprüft werden soll Beispiel int zahl =...; if ( zahl >= 100) { // zahl ist mindestens 100 } else if ( zahl >= 10) { // zahl liegt zwischen 10 ( inklusive ) und 100 ( exklusive ) } else { // zahl ist kleiner als 10 } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 32 / 37

Verschachtelte if-anweisungen im Block einer if-anweisung können weitere if-anweisungen stehen verschachtelte if-anweisungen Beispiel int zahl =...; if ( zahl >= 100) { // zahl ist mindestens 100 if ( zahl >= 1000) { // zahl ist mindestens 1000 } else { // zahl ist zwischen 100 ( inklusive ) und 1000 ( exklusive ) } } else { // zahl ist kleiner als 100 } Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 33 / 37

Beispiel für verkettete/verschachtelte if-anweisungen (1) Frage In welchem Quadranten liegt ein Koordinaten-Paar (x, y)? y 2 1 x 3 4 Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 34 / 37

Beispiel für verkettete/verschachtelte if-anweisungen (2) Verkettete if-abfragen if (x >= 0 && y >= 0) { quadrant = 1; } else if (x < 0 && y >= 0) { quadrant = 2; } else if (x < 0 && y < 0) { quadrant = 3; } else { quadrant = 4; } Quadranten y 2 1 3 4 x Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 35 / 37

Beispiel für verkettete/verschachtelte if-anweisungen (3) Verschachtelte if-abfragen if (x >= 0) { if (y >= 0) { quadrant = 1; } else { quadrant = 4; } } else { if (y >= 0) { quadrant = 2; } else { quadrant = 3; } } Quadranten y 2 1 3 4 x Informatik-Repetitorium Tag 2 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 36 / 37

Fragen? Fragen! (hilft auch den anderen)