IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

25
IF-ELSE-IF- Ketten

Transcript of IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Page 1: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

IF-ELSE-IF-Ketten

Page 2: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Aufgabe:

Fiktiver Bußgeldkatalog I

>0 km/h: 1000 Euro

Page 3: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

import java.io.*;

public class MainBussgeld1 { public static void main() throws IOException{ double v, bussgeld; String str;

Page 4: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

System.out.println( "Geschwindigkeitsüberschr. eingeben"); BufferedReader myinput = new BufferedReader(new InputStreamReader( System.in)); str = myinput.readLine(); v=Double.parseDouble(str);

Page 5: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Wichtig:Wegen Platzmangels wird eine

Bildschirmausgabe durch print("...")

und die Eingabe über Tastatur durch

eingabe(...) abgekürzt.

Page 6: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ bussgeld=1000;}

print("Strafe="+bussgeld);}

Page 7: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Aufgabe:

Fiktiver Bußgeldkatalog II

10 km/h: 20 Euro>10 km/h: 1000 Euro

Page 8: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ if(v <= 10){ bussgeld=20; } else{ bussgeld=1000; }}

Warum ist folgendes nicht nötig ?

if ((v<=10)&&(v>0))

Weil im else-Teil automatisch

v>0ist

Page 9: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Nachteil der Darstellung:Hohe Verschachtelungstiefe

Alternative, übersichtlichere (flachere) Darstellung:

Page 10: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ if(v <= 10){ bussgeld=20; } else{ bussgeld=1000; }}

if(v<=0){ bussgeld=0;}else{if(v <= 10){ bussgeld=20; }else{ bussgeld=1000;}}

Warum können Klammern

weggelassen werden ?

Weil sie nur eine Anweisung

einschliessen !

Die linke und die obige Darstellung sind – bis auf die

Optik – genau gleich

Page 11: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ if(v <= 10){ bussgeld=20; } else{ bussgeld=1000; }}

if(v<=0){ bussgeld=0;}else if(v <= 10){ bussgeld=20;}else{ bussgeld=1000;}

Die obige Darstellung ist flacher als die linke Darstellung, aber

gleichwertig zur linken Darstellung

Sie heißt IF-ELSE-IF Kette

Page 12: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Aufgabe:

Fiktiver Bußgeldkatalog III

10 km/h: 20 Euro 20 km/h: 40 Euro>20 km/h: 1000 Euro

Page 13: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ if(v <= 10){ bussgeld=20; } else{ if(v <= 20){ bussgeld=40; } else{ bussgeld=1000; } } }

Page 14: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Nachteil der Darstellung:Hohe Verschachtelungstiefe

Alternative, übersichtlichere (flachere) Darstellung:

Page 15: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ if(v <= 10){ bussgeld=20; } else{ if(v <= 20){ bussgeld=40; } else{ bussgeld=1000; } } }

if(v<=0){ bussgeld=0;}else{if(v <= 10){ bussgeld=20;}else{if(v <= 20){ bussgeld=40;}else{ bussgeld=1000; }}}

Weil sie nur jeweils eine Anweisung einschliessen !

Die linke und die obige Darstellung sind – bis auf die

Optik – genau gleich

Warum können farbige Klammern

weggelassen werden ?

Page 16: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{ if(v <= 10){ bussgeld=20; } else{ if(v <= 20){ bussgeld=40; } else{ bussgeld=1000; } } }

if(v<=0){ bussgeld=0;}else if(v <= 10){ bussgeld=20;}else if(v <= 20){ bussgeld=40;}else{ bussgeld=1000; }

Die obige Darstellung ist flacher als die linke Darstellung, aber

gleichwertig zur linken Darstellung

Page 17: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Aufgabe:

Fiktiver Bußgeldkatalog IV

10 km/h: 20 Euro 20 km/h: 40 Euro 30 km/h: 60 Euro>30 km/h: 1000 Euro

Page 18: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{

if(v<=10){ bussgeld=20; } else{

if(v <= 20){ bussgeld=40; } else{

if(v <= 30){ bussgeld=60; } else{ bussgeld=1000; } } }}

Page 19: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Nachteil der Darstellung:Hohe Verschachtelungstiefe

Alternative, übersichtlichere (flachere) Darstellung:

Page 20: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{

if(v<=10){ bussgeld=20; } else{

if(v <= 20){ bussgeld=40; } else{

if(v <= 30){ bussgeld=60; } else{ bussgeld=1000; } } }}

if(v<=0){ bussgeld=0;}else{if(v<=10){ bussgeld=20;}else{if(v <= 20){ bussgeld=40;}else{if(v <= 30){ bussgeld=60;}else{ bussgeld=1000;}}}}

Klammern können weggelassen werden

Page 21: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{

if(v<=10){ bussgeld=20; } else{

if(v <= 20){ bussgeld=40; } else{

if(v <= 30){ bussgeld=60; } else{ bussgeld=1000; } } }}

if(v<=0){ bussgeld=0;}else if(v<=10){ bussgeld=20;}else if(v <= 20){ bussgeld=40;}else if(v <= 30){ bussgeld=60;}else{ bussgeld=1000;}

Die linke und die obige Darstellung sind – bis auf die Optik – genau gleich

Page 22: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

if(v<=0){ bussgeld=0;}else{

if(v<=10){ bussgeld=20; } else{

if(v <= 20){ bussgeld=40; } else{

if(v <= 30){ bussgeld=60; } else{ bussgeld=1000; } } }}

if(v<=0){ bussgeld=0;}else if(v<=10){ bussgeld=20;}else if(v <= 20){ bussgeld=40;}else if(v <= 30){ bussgeld=60;}else{ bussgeld=1000;}

Zeichen Sie das dazugehörige Struktogramm!

Page 23: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

W

b=0

v<=0

Wichtig: NUR Der Else Teil wird jeweils weiter verschachtelt !

Was fällt auf (hinsichtlich der Verschachtelung) ?

v<=10

v<=20

v<=30

b=20

b=40

b=60 b=1000

W

W

W

F

F

F

F

Page 24: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

Struktogramm einer beliebigen

IF-ELSE-IF Kette

Page 25: IF-ELSE-IF- Ketten. Aufgabe: Fiktiver Bußgeldkatalog I >0 km/h: 1000 Euro.

W F

W F

W F

W F

W F

A1

B1

B2

B3

B4

...

A2

A3

A4... ...

Wichtig: NUR Der Else Teil wird jeweils weiter verschachtelt !

Was fällt auf (hinsichtlich der Verschachtelung) ?