Kontrollstrukturen 4.2 Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) 4.2 Verzweigung (Selektion, Auswahl) 4.2 Verzweigung (Selektion, Auswahl) 4.2.1 Einfache Verzweigung Beispiel: Wenn der Umsatz eines Mitarbeiters größer als € 1000,-- ist, dann wird ihm ein Bonus von € 50,-- gewährt. Die einfache Verzweigung entspricht der umgangssprachlichen Formulierung "Wenn..dann..". (vgl. "WENN-Funktion" in EXCEL) Struktogramm: Notizen: Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 58 Kontrollstrukturen 4.2 Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) Java-Programm: [01] import java.io.*; [02] class UmsatzBonus1 [03] { [04] public static void main(String args[]) throws IOException [05] { [06] double umsatz,bonus=0; [07] BufferedReader buf=new BufferReader(new Inp utStreamReader(System.in)); [08] [09] System.out.print("Gib den Mitarbeiterumsatz ein: "); [10] umsatz=Double.parseDouble(buf.readLine()); [11] [12] if(umsatz>1000) [13] { [14] bonus=50; [15] } [16] [17] System.out.println("Umsatz: "+umsatz); [18] System.out.println("Bonus : "+bonus); [19] } [20] } Syntax: Wenn mehrere Anweisungen ("Anweisungsblock") auszuführen sind: if(<Bedingung>) { <Anweisung1>; <Anweisung2>; ... } Wenn nur eine Anweisung auszuführen ist: if(<Bedingung>) <Anweisung1>; Notizen: 59 Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 Kontrollstrukturen Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) 4.2 ?? <Bedingung> muss ein Boolscher Ausruck sein ? Ausdruck, der einen Wert vom Typ boolean (true oder false) zurückliefert ?? hinter if() kommt kein ' ; '! ?? Achtung bei (Zahlen-)vergleich: if(a==5)... ? ' == ' ! Weitere Beispiele: //größer gleich if(x>=3) //kleiner gleich if(y<=-8) //ist gleich if(anz==10) //ist ungleich if(anz<>10) //mit boolscher Variablen boolean istPrimzahl; istPrimzahl=true; if(istPrimzahl) //mit logischer Verknüpfung //Verneinung if(!(eingabe.equals("Ja"))) //UND-Verknüpfung if(umsatz>1000 && umsatz<5000) //ODER-Verknüpfung if(umsatz>1000 || istGuterMitarbeiter) Notizen: Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 60 Kontrollstrukturen 4.2 Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) 4.2.2 Zweifache Verzweigung Beispiel: Wenn der Umsatz eines Mitarbeiters größer als € 1000,-- ist, dann wird ihm ein Bonus von € 50,-- gewährt, sonst € 20,--. Die zweifache Verzweigung entspricht der umgangssprachlichen Formulierung "Wenn..dann..sonst...". (vgl. "WENN-Funktion" in EXCEL) Struktogramm: Notizen: 61 Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 Kontrollstrukturen 4.2 Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) Java-Programm: [01] import java.io.*; [02] class UmsatzBonus2 [03] { [04] public static void main(String args[]) throws IOException [05] { [06] double umsatz,bonus=0; [07] BufferedReader buf=new BufferReader(new InputStreamReader(System.in)); [08] [09] System.out.print("Gib den Mitarbeiterumsatz ein: "); [10] umsatz=Double.parseDouble(buf.readLine()); [11] [12] if(umsatz>1000) [13] { [14] bonus=50; [15] } [16] else [17] { [18] bonus=20; [19] } [20] [21] System.out.println("Umsatz: "+umsatz); [22] System.out.println("Bonus : "+bonus); [23] } [24] } Notizen: Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 62 Kontrollstrukturen Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) 4.2 Syntax: Wenn mehrere Anweisungen auszuführen sind: if(<Bedingung>) { <WennAnweisung1>; <WennAnweisung2>; ... } else { <SonstAnweisung1>; <SonstAnweisung2>; ... } Wenn nur eine Anweisung auszuführen ist: if(<Bedingung>) <WennAnweisung1>; else <SonstAnweisung1>; ?? hinter else kommt kein ' ; '! Notizen: 63 Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 Kontrollstrukturen 4.2 Sequenz ? Verzweigung (Selektion, Auswahl) Schleife (Repetition, Wiederholung) 4.2.3 Mehrfache Verzweigung, verschachtelte Verzweigung Beispiel: Nach Eingabe der Risikostufe (1 - 5) soll ein Programm zu einer entsprechenden Geldanlage raten. Struktogramm: Notizen: Java für Berufliches Gymnasium und Höhere Berufsfachschule. Band 1: Datenstrukturen und Algorithmen © datadidact 2006 64