Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger

Ähnliche Präsentationen


Präsentation zum Thema: "Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger"—  Präsentation transkript:

1 Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger se1ue_ws@tk.uni-linz.ac.at http://www.tk.uni-linz.ac.at/teaching/ http://www.tk.uni-linz.ac.at/blackboard/ UE02 D - Kontrollstukturen

2 Abteilung für Telekooperation Folie-2 Softwareentwicklung I UE Schwinger Kontrollfluß Blöcke: { … } Verzweigungen: if-else, switch-case-default Schleifen: for, while, do-while, break, continue Exceptions: try-catch-finally Sonstige: break, continue, label:, return

3 Abteilung für Telekooperation Folie-3 Softwareentwicklung I UE Schwinger Kontrollfluß Blöcke Lokale Variablen in geschachtelten Blöcken class Test { public static void main(String[] args) { int x = 1; {// Block 1 beginnt int y; int x;//NICHT ERLAUBT y=1;//Zuweisung an }// Block 1 endet y = 0;//NICHT ERLAUBT - y nicht bekannt {// Block 2 beginnt int y; //erlaubt }// Block 2 endet } // end main } // end class Test

4 Abteilung für Telekooperation Folie-4 Softwareentwicklung I UE Schwinger Variablendeklaration (1) Lokale Variablen public class LocalVariableDeclaration { public static void main (String[] arg) { int cnt = 0; // Zähler für... (Anfangswert 0) boolean alive; //... (immer ein Kommentar!) } } Globale Konstanten public class ConstantDeclaration { static final int NUMBER_BASE = 10; // Basis für... static final boolean NO = false; // NEIN... static final double PI = 3.14; // PI public static void main (String[] arg) { } } innerhalb eines (Methoden-) Blocks (z.B.: main)! ausserhalb der (Methoden-) Blöcke (z.B.: main)! final... Variable ändert sich nicht!

5 Abteilung für Telekooperation Folie-5 Softwareentwicklung I UE Schwinger Wahrheitswert ( true oder false ) boolean b = true; // Variable, d. e. Wahrheitswert speichert boolean d = false; // Variable, d. e. Wahrheitswert speichert Variablen und Datentypen boolean

6 Abteilung für Telekooperation Folie-6 Softwareentwicklung I UE Schwinger char x = 'b'; // Variable vom Typ char... x == 'a'... // Vergl. von 2 char... x == "Hans"... // GEHT NICHT wegen Datentyps! String name = "Fred"; // Variable vom Typ String... name == "Hans"... // GEHT NICHT wegen String! boolean b = i>0 == true; //entspricht b = i>0; unschoen! Verlgeichsoperatoren: =, > Datentyp des Ergebnisses ist boolean … i+j <= 10 … Variablen und Datentypen boolean 1) i + j ermitteln 2) (i + j) mit der Konstante 10 vergleichen Jeden Ausdruck, der ein boolean'sches Ergebnis liefert bezeichnet man auch als logischen Ausdruck (boolean expression)!

7 Abteilung für Telekooperation Folie-7 Softwareentwicklung I UE Schwinger Kontrollfluß if-else 1/2 Verzweigung if( a > b ) System.out.println(a); // falls a>b else System.out.println(b); // falls a<=b Verwendung von Anweisungsblöcken {…} if ( a > b ) { System.out.println(a); … } else { System.out.println(b); … } die häufigere Variante!

8 Abteilung für Telekooperation Folie-8 Softwareentwicklung I UE Schwinger Kontrollfluß Beispiele if(Ausdruck) System.out.println("A"); else System.out.println("B"); Gegeben: Annahme: int i = 5;es wird das Zeichen 'c' boolean b = false;eingegeben char c; Ausdruck:Ausgabe?: a) i > 10B b) i != "Hugo"-... Compiler-Fehler c) (i <= 10) != bA d) bB e) IO.read()=='c'A f) c=IO.read() == 'c'-... Compiler-Fehler g) 'c'==IO.read()A h) (c=IO.read()) == 'c'A

9 Abteilung für Telekooperation Folie-9 Softwareentwicklung I UE Schwinger Variablen und Datentypen Der Auswahloperator ? : Bedingte Auswertung int max = a > b ? a : b; Abkürzung für: int max; if (a > b) max = a; else max = b; Nur erlaubt bei Ausdrücken, deren Ergebnis verwendet wird (Zuweisung, Parameter) nicht empfohlen!

10 Abteilung für Telekooperation Folie-10 Softwareentwicklung I UE Schwinger Boolsche Operationen: &, |, ! int i=10, j=-1; boolean b = i > 0 & j > 0;//false boolean d = i > 0 | j > 0; //true alternative Schreibweise mit Klammerung: boolean d = ((i > 0) | (j > 0)); //true Variablen und Datentypen boolean

11 Abteilung für Telekooperation Folie-11 Softwareentwicklung I UE Schwinger Boolsche Operationen: &&, || mit Kurzschluß-Auswertung: if ( j>0 && i/j>=5) {…} while (i<tab.length && tab[i]!=0) {…} if ( a != 0 && b / a > 0 ) x = 0; if ( a == 0 || b / a > 0 ) x = 1; Variablen und Datentypen boolean NB: Für Abfragen (if) und Schleifenbedingungen (while) ist die Form mit "Kurzschlussauswertung" die geeignetere! äquivalent zu: if (a != 0) if (b / a > 0) x = 0; if (a == 0) x = 1; else if (b / a > 0) x = 1; wenn false, ist gesamter Ausdruck false wenn true, ist gesamter Ausdruck true

12 Abteilung für Telekooperation Folie-12 Softwareentwicklung I UE Schwinger Regeln von DeMorgan ! (a && b) => ! a || ! b ! (a || b) => ! a && ! b Diese Regeln helfen beim Bilden von Assertionen if (x >= 0 && x < 10) {...// hier gilt: x >= 0 && x < 10 } else {...// x = 10 } Variablen und Datentypen Negation zusammengesetzter Ausdrücke Vermerken Sie nach Möglichkeit immer die geltenden Bedingung bei Verzweigungen

13 Abteilung für Telekooperation Folie-13 Softwareentwicklung I UE Schwinger Kontrollfluß if-else 2/2 Achtung: Dangling else! else gehört immer zur innersten Verzweigung (d.h. zum letzten if )! if (a>b) if (a>0) max = a; else max = b; //bezieht sich auf max = a Ausweg: leeres else, z.B. if (a>b) if (a>0) max = a; else; //bezieht sich auf max = a else max = b; unschön! Blöcke verwenden!

14 Abteilung für Telekooperation Folie-14 Softwareentwicklung I UE Schwinger Kontrollfluß while Abweisende Schleife, z.B. Summe der Zahlen von 1 bis n: int n = …; int i = 1, sum = 0; while (i <= n) { sum = sum + i; i = i + 1; } // i > n Minimale Anzahl der Schleifendurchläufe ist 0

15 Abteilung für Telekooperation Folie-15 Softwareentwicklung I UE Schwinger Kontrollfluß do-while Durchlaufschleife (Nichtabweisende-Schleife) int i = 1; do { System.out.println("Das ist das "+(i++)+". Mal."); } while (i <= 10) // i > 10 Minimale Anzahl der Schleifendurchläufe ist 1

16 Abteilung für Telekooperation Folie-16 Softwareentwicklung I UE Schwinger Kontrollfluß for Zählschleife, z.B. Ausgabe der Kommandozeilenparameter for (int i = 0; i < args.length; i++) { System.out.println("Nr. " i + " ist " + args[i]); } Äquivalente while-Schleife: { int i = 0; while (i < args.length) { System.out.println("Nr. " i + " ist " + args[i]); i++; }


Herunterladen ppt "Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger"

Ähnliche Präsentationen


Google-Anzeigen