Objektorientierte Programmierung. Bedingungen und Entscheidungen

Содержание

Слайд 2

Bedingungen und Entscheidungen

Herzstück jedes Computers, jedes Programms, jedes Spiels
Aktionen nicht immer

Bedingungen und Entscheidungen Herzstück jedes Computers, jedes Programms, jedes Spiels Aktionen nicht
gleich, sondern Situationsabhängig
Reagieren des Programms/Spiels auf den Nutzer/Spieler

Слайд 3

Entscheidungen anhand von Zuständen (Aussagen) treffen
Essentiell, sonst müsste es für jede Funktionalität

Entscheidungen anhand von Zuständen (Aussagen) treffen Essentiell, sonst müsste es für jede
einen eigenen Button geben

?

x == 2

JA

NEIN

Bedingungen

Слайд 4

Begriffe

Bedingung

Haupt-Aussage

Entscheidung

True

False

False

Aussage

True

True

False

Aussage

True

False

Begriffe Bedingung Haupt-Aussage Entscheidung True False False Aussage True True False Aussage True False

Слайд 5

Aussagen lassen sich auf einen von zwei Werten herunterbrechen

WAHR

FALSCH

FALSE

TRUE

GodMode
Gegner tot
Schwierigkeitsgrad
Aufgabe erledigt? (Töte

Aussagen lassen sich auf einen von zwei Werten herunterbrechen WAHR FALSCH FALSE
A und B)

Ist GodMode an?
Ist Gesundheit <= 0 ?
Ist Schwierigkeitsgrad „Hardcore“ an?
Ist der Wert des Schwierigkeitsgrads == „Hardcore“?
Sind Gegner A und Gegner B tot?
(Ist Gegner A tot?) UND (Ist Gegner B tot?)
(Ist Gesundheit von A < 0) UND (Ist Ges. von B < 0)

Aussagen >Wahrheitswerte (bool)>Entscheidung

Слайд 6

Kann nur zwei Werte annehmen

bool condition;
public void MyFct()
{
condition = true;
condition =

Kann nur zwei Werte annehmen bool condition; public void MyFct() { condition
false;
}

Boolean Datentyp (bool)

Слайд 7

Resultieren zur Laufzeit in einem boolean-Wert

bool condition;
public void MyFct()
{
condition = 12 ==

Resultieren zur Laufzeit in einem boolean-Wert bool condition; public void MyFct() {
12; // condition ist true
condition = 12 > 15; // condition ist false
condition = „Text“ == „Text“;
// condition ist true
}

Vergleiche ( Aussage)

Слайд 8

Resultieren zur Laufzeit in einem boolean-Wert

bool condition;
int x = 30;
int y =

Resultieren zur Laufzeit in einem boolean-Wert bool condition; int x = 30;
30;
public void MyFct()
{
condition = x == y; // true condition = x > y; // false
condition = x >= y; // true
//UNGLEICH
condition = x != y; //false
}

Vergleiche ( Aussage)

Слайд 9

Größer , GrößerGleich, Gleich, Ungleich
Beachte Unterschied Zuweisung (=) und Vergleich- IstGleich (==)

int

Größer , GrößerGleich, Gleich, Ungleich Beachte Unterschied Zuweisung (=) und Vergleich- IstGleich
x = 4;
int y = 5;
if( x > y) // Größer
{ DoStuff(); }
if( x >= y) // GrößerOderGleich
{ DoStuff(); }
if( x == y) // Gleich
{ DoStuff(); }
if( x != y ) // Ungleich
DoStuff();

Bedingungen

Слайд 10

Verneinung

bool condition = true;
if( !condition ) //enspricht !true also false
{ DoStuff(); }
if( !

Verneinung bool condition = true; if( !condition ) //enspricht !true also false
(myNumber > 734) )
{ DoStuff(); }
if( myNumber != 734)
DoStuff();
DoThisStuffAnyway();

Bedingungen

Слайд 11

Verknüpfung

bool condition = true;
bool status = true;
if( condition && status )
{ DoStuff();

Verknüpfung bool condition = true; bool status = true; if( condition &&
}
if( condition || status )
{ DoStuff(); }
if( condition && !status)
DoStuff();
DoThisStuffAnyway();

Bedingungen

Слайд 12

Verschachtelung

if( condition && ( x > y || condition2) )
{ DoStuff(); }
if(

Verschachtelung if( condition && ( x > y || condition2) ) {
condition || status )
{ DoStuff(); }
if( condition && !status)
DoStuff();
DoThisStuffAnyway();

Bedingungen

Слайд 13

public void MyFct()
{
}

If – Abfrage
? „condition“ kann ein vorher berechneter bool-Wert

public void MyFct() { } If – Abfrage ? „condition“ kann ein
sein, aber auch eine komplexe Verkettung von logischen Operationen (Boolsche Operationen)

if(condition)

TRUE

FALSE

{
Function1();
}

Function2();

// Wird immer ausgeführt, weil er außerhalb der Klammern liegt

Bedingungen

Слайд 14

Abfragen

bool condition = true;
if( condition == true)
{
DoStuff();
}
if( condition )
{
DoStuff();

Abfragen bool condition = true; if( condition == true) { DoStuff(); }

}
// Bedeutet beides dasselbe x == true? => x

Bedingungen

Слайд 15

Abfragen

bool condition = true;
if( condition )
{
DoStuff();
}
if( 552 > 734 )
{

Abfragen bool condition = true; if( condition ) { DoStuff(); } if(
DoStuff(); }
if( myNumber > 552 )
{
DoStuff();
}

Bedingungen

Слайд 16

Schreibweisen

public void MyFct()
{
if( condition )
{
DoStuff1();
DoStuff2();
}
if( condition )
DoStuff1();
DoStuff2();
}

In

Schreibweisen public void MyFct() { if( condition ) { DoStuff1(); DoStuff2(); }
Klammern zusammengefasst
Werden beide ausgeführt, wenn condition == true
Sonst beide nicht!

Ohne Klammern
Nur der erste Befehl ist von der if-Abfrage abhängig

Wird immer ausgeführt!
Nicht in Klammern und nicht erste Zeile nach der if-Abfrage

Bedingungen

Слайд 17

public void MyFct()
{
}

If - Abfrage

if(condition)

if(condition2)

TRUE

TRUE

FALSE

FALSE

Function2();

{

public void MyFct() { } If - Abfrage if(condition) if(condition2) TRUE TRUE

Function1();
}

Function3(); // Wird immer ausgeführt, weil eine if- Abfrage ohne Klammern nur den nächsten Befehl verhindert/erlaubt

Bedingungen

Слайд 18

AUFGABE

Evade – Folie 9

AUFGABE Evade – Folie 9

Слайд 19

public void MyFct()
{
DoStuff(); //immer, danach
}

If / Else- Abfrage

if(condition)

TRUE

else

Eine von

public void MyFct() { DoStuff(); //immer, danach } If / Else- Abfrage
beiden Befehlsketten wird immer ausgeführt
Aber nie beide

{
Function1();
}

{
Function2();
}

FALSE

Bedingungen

Слайд 20

Verneinung (Kehrt den Wahrheitswert einer Aussage um)

bool condition = true;
if( !condition ) //enspricht !true

Verneinung (Kehrt den Wahrheitswert einer Aussage um) bool condition = true; if(
also false
{ DoStuff(); }
if(condition == false)
{ DoStuff(); }
if( ! (myNumber > 734) )
{ DoStuff(); }
if( myNumber != 734)
DoStuff();
DoThisStuffAnyway();

Bedingungen

Слайд 21

If / Else if / else- Abfrage

if(condition)

TRUE

else

Es kann mehrere

If / Else if / else- Abfrage if(condition) TRUE else Es kann
else if – Bedingungen geben
Es wird immer nur eine Befehlskette ausgeführt
Die erste Bedingung die wahr ist, bekommt den Zuschlag
Auch wenn die späteren auch wahr sind
Ist KEINE Bedingung wahr, wird „else“ ausgeführt

else if(condition2)

FALSE

TRUE

{
Function1();
}

{
Function3();
}

{
Function2();
}

Bedingungen

Слайд 22

If / Else if / else- Abfrage

if(condition)

else

Es kann mehrere

If / Else if / else- Abfrage if(condition) else Es kann mehrere
else if – Bedingungen geben
Es wird immer nur eine Befehlskette ausgeführt
Die erste Bedingung die wahr ist, bekommt den Zuschlag
Auch wenn die späteren auch wahr sind
Ist KEINE Bedingung wahr, wird „else“ ausgeführt

else if(condition2)

TRUE

FALSE

FALSE

{
Function1();
}

{
Function3();
}

{
Function2();
}

Bedingungen

Слайд 23

else / else if

bool condition = true;
if( condition )
{ DoStuff(); }
else
{ DoSomeOtherStuff();

else / else if bool condition = true; if( condition ) {
}
if( frust >= 100 )
{ DoStuff(); }
else if ( condition )
{ BeendeSpiel(); }
else
{ DoSomeOtherStuff(); }

Bedingungen

Слайд 24

Größer , GrößerGleich, Gleich, Ungleich
Beachte Unterschied Zuweisung (=) und Vergleich- IstGleich (==)

int

Größer , GrößerGleich, Gleich, Ungleich Beachte Unterschied Zuweisung (=) und Vergleich- IstGleich
x = 4;
int y = 5;
if( x > y) // Größer
{ DoStuff(); }
if( x >= y) // GrößerOderGleich
{ DoStuff(); }
if( x == y) // Gleich
{ DoStuff(); }
if( x != y ) // Ungleich
DoStuff();

Bedingungen

Слайд 25

Selbststudium zum Thema
Verknüpfung von Aussagen
Boolsche Operationen

Bedingungen

Selbststudium zum Thema Verknüpfung von Aussagen Boolsche Operationen Bedingungen

Слайд 26

Resultieren zur Laufzeit in einem boolean-Wert

bool condition;
public void MyFct()
{
condition = ( zustand

Resultieren zur Laufzeit in einem boolean-Wert bool condition; public void MyFct() {
== 2 && livePoints < 0 );
// && = „UND“ // Ergibt „true“, wenn beide Aussagen „true“ sind
}

Verknüpfung von Aussagen

Слайд 27

Resultieren zur Laufzeit in einem boolean-Wert

Verknüpfung von Aussagen

zustand = 2
livePoints = 20

Resultieren zur Laufzeit in einem boolean-Wert Verknüpfung von Aussagen zustand = 2
zustand == 2 UND livePoints <= 0
true UND livePoints <= 0
true UND false
false

Слайд 28

Resultieren zur Laufzeit in einem boolean-Wert

bool condition;
public void MyFct()
{
condition = ( zustand

Resultieren zur Laufzeit in einem boolean-Wert bool condition; public void MyFct() {
== 2 || livePoints < 0 );
//|| = „ODER“ // Ergibt „true“, wenn eine oder beide Aussagen „true“ sind
}

Verknüpfung von Aussagen

Слайд 29

Resultieren zur Laufzeit in einem boolean-Wert

Verknüpfung von Aussagen

zustand = 2
livePoints = 20

Resultieren zur Laufzeit in einem boolean-Wert Verknüpfung von Aussagen zustand = 2
zustand == 2 ODER livePoints <= 0
true ODER livePoints <= 0
true ODER false
true

Слайд 30

Verknüpfung

bool condition = true;
bool status = true;
if( condition && status )
{ DoStuff();

Verknüpfung bool condition = true; bool status = true; if( condition &&
}
if( condition || status )
{ DoStuff(); }
if( condition && !status)
DoStuff();
DoThisStuffAnyway();

Bedingungen

Слайд 31

Resultieren zur Laufzeit in einem boolean-Wert

Verknüpfung von Aussagen (Klammern)

zustand = 3
livePoints = 0
test

Resultieren zur Laufzeit in einem boolean-Wert Verknüpfung von Aussagen (Klammern) zustand =
= true
(zustand == 2 UND livePoints <= 0) ODER test
(false UND livePoints <= 0) ODER test
(false UND true) ODER test
(false) ODER test
false ODER true
true

Слайд 32

Resultieren zur Laufzeit in einem boolean-Wert

Verknüpfung von Aussagen (Klammern)

zustand = 3
livePoints = 0
test

Resultieren zur Laufzeit in einem boolean-Wert Verknüpfung von Aussagen (Klammern) zustand =
= true
zustand == 2 UND (livePoints <= 0 ODER test)
false UND (livePoints <= 0 ODER test)
false UND (true ODER test)
false UND (true ODER true)
false UND true
false

Слайд 33

Verschachtelung

if( condition && ( x > y || condition2) )
{ DoStuff(); }
if(

Verschachtelung if( condition && ( x > y || condition2) ) {
condition || status )
{ DoStuff(); }
if( condition && !status)
DoStuff();
DoThisStuffAnyway();

Bedingungen

Слайд 34

HÄUFIGSTER FEHLER:

Bedingungen

if( condition && ( x > y || condition2) )
{ DoStuff();

HÄUFIGSTER FEHLER: Bedingungen if( condition && ( x > y || condition2)
}
if( condition = status )
{ DoStuff(); }
if( condition && !status)
DoStuff();
DoThisStuffAnyway();

Ein „=„ statt 2x
„=„ Variablen Zuweisung
„==„ Vergleich