Übersicht

13
1 Übersicht Boolesche Ausdrücke (Werte wahr/falsch) Relationale Operatoren (==, >,<, ..) Kontrollstrukturen – while do - while – switch – break

Upload: milos

Post on 18-Jan-2016

25 views

Category:

Documents


1 download

DESCRIPTION

Übersicht. Boolesche Ausdrücke (Werte wahr/falsch ) Relationale Operatoren (==, >,

TRANSCRIPT

Page 1: Übersicht

1 1

Übersicht

• Boolesche Ausdrücke (Werte wahr/falsch)

– Relationale Operatoren (==, >,<, ..)

• Kontrollstrukturen

– while

– do - while

– switch

– break

Page 2: Übersicht

2 2

Boolesche Ausdrücke

• Bedingungen in if oder for:• Beispiele:

–if(i == 0) ...

–for(int i = 0 ; i < 1000 ; i = i + 1)...

Page 3: Übersicht

3 3

Relationale Operatoren

Mathem. Notation Java Erläuterung

= == Identität (Gleichheit)

!= Ungleichheit

< < kleiner als

<= kleiner oder gleich als

> > größer als

>= größer oder gleich als

Page 4: Übersicht

4 4

Beispiel: For-Schleife mit komplexer Bedingung

• Es sollen die Zahlen von 1 bis 100 addiert werden, jedoch soll vorher abgebrochen werden,wenn die Summe die Zahl 2000 erreicht hat.

int Summe =0;

for(int i = 1; (i <= 100 & Summe < 2000); i = i+1)

{

Summe = Summe + i;

}

Page 5: Übersicht

5 5

while- und do-while-Schleife

while-Schleife:

while ( boolean-Ausdruck )

{ Anweisung 1;

Anweisung 2;

….

}

• Schleife mit Eintrittsbedingung– Anweisung wird 0 bis

x-mal ausgeführt

do-while-Schleife:

do {

Anweisung 1;

Anweisung 2;

….

}

while ( boolean-Ausdruck );

• Schleife mit Wiederholungsbedingung– Anweisung wird mindestens

einmal ausgeführt

Page 6: Übersicht

6 6

Übung 1

• Schreibe ein Programm, das die Zahlen von 1 bis 100 aufzählt, wobei anstelle der durch 5 und durch sieben teilbaren Zahl der Text „XY“ ausgeschrieben werden soll. Ist die Zahl nur durch 5 teilbar soll der Buchstabe „X„ und nur durch 7 teilbar der Buchstabe „Y“ ausgegeben werden.

• Tip: Verwende die Operation % (Rest der ganzzahligen Division): • z.B. 11 % 5 = 1 (11 geteilt durch 5 ist 2 mit Rest 1)

Page 7: Übersicht

7 7

Übung 2

Die Collatz-Folge ist definiert durch:

n n/2 falls n gerade ist

n 3n+1 falls n ungerade ist.

Berechne diese Zahlenfolge für den Startwert 27 bis die Zahl 1 erreicht ist. Die ersten Folgenglieder lauten 27, 82, 41, 124, 62, 31 usw.

Page 8: Übersicht

8 8

Übung 3

• Schreibe ein Programm, das die natürlichen Zahlen solange summiert, bis die Summe die Zahl 3000 erstmals überschreitet. Gib die Summe und die Anzahl der natürlichen Zahlen aus.

• Tip: Verwende while-Schleifen:– while ( boolean-Ausdruck )

Anweisung;

– do Anweisung;

while ( boolean-Ausdruck );

Page 9: Übersicht

9 9

switch-Anweisung

• dient zur Realisierung von Fallunterscheidungen

• switch (Ausdruck )

{case Wert1 : Anweisung1; // 1. Fall Ausdruck=Wert1case Wert2 : Anweisung2; // 2. Fall Ausdruck=Wert2. . . default: Ansonsten-Anweisung; // ansonsten}

• es werden alle Anweisungen ab der ersten erfüllten case-Bedingung ausgeführt !! (inkl. der Ansonsten-Anweisung )

• Ausdruck muss vom Typ byte, short, int oder char sein

• Wert1, Wert2, … muss eine Konstante vom gleichen Typ wie Ausdruck sein

Page 10: Übersicht

10 10

Beispiel 1 zur switch-Anweisung

class Switch1 {

public static void main (String args[]) {

int i;for (i=0; i < 10; i=i+1)

switch(i) {case 1: System.out.println("eins");case 2: System.out.println("zwei");case 5: System.out.println("fünf");default: System.out.println(i);}

}}

Ausgabe:

0einszweifünf1zweifünf234fünf56789

Problem: fehlerhafte Ausgabe, da jeweils nach der ersten passenden case-Bedingung alle anderen Anweisungen ohne weitere Überprüfung ausgeführt werden!

Page 11: Übersicht

11 11

Die break-Anweisung (1)

• dient zum Abbruch von switch-Fallunterscheidungen

switch ( Ausdruck ) {case Wert1 : { Anweisung1; break; }case Wert2 : { Anweisung2; break; }. . . default: Ansonsten-Anweisung;}

• Der Programmablauf wird bei Ausführung eines break-Befehls hinter der switch-Anweisung fortgesetzt!

Page 12: Übersicht

12 12

Beispiel 2 zur switch-Anweisung

class Switch2 {

public static void main (String args[]) {

int i;for (i=0; i < 10; i=i+1)switch(i) {

case 1: {System.out.println("eins"); break;}case 2: {System.out.println("zwei"); break;}case 5: {System.out.println("fünf"); break;}default: System.out.println(i);}

}}

Ausgabe:

0einszwei34fünf6789

Die Ausgabe ist nun korrekt, da die switch-Anweisung jeweils nach der Ausführung der passenden case-Bedingung mittels break verlassen wird.

Page 13: Übersicht

13 13

Die break-Anweisung (2)

• kann auch zum Abbruch von Schleifen (for, while, do-while) eingesetzt werden

Beispiel while-Schleife:

while ( boolean-Ausdruck1 ) {. . .if ( boolean-Ausdruck2 ) break; // Abbruch. . . }

• Der Programmablauf wird hinter der Schleifenanweisung fortgesetzt