03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

116 6 Einsatz von Basis-Methoden<br />

ˆ Sammle alle Punktwerte der Instanz “WerteErfassung11”, die ungeradzahlig<br />

sind, und bestimme deren Anzahl!<br />

lösen zu können, muß im Hinblick auf den Sachverhalt, daß die Anzahl der erfaßten<br />

Punktwerte geradzahlig oder ungeradzahlig ist, eine Möglichkeit zur Verzweigung<br />

existieren.<br />

Um eine Verzweigung in einem Struktogramm darzustellen, setzen wir einen “Bedingungs-Strukturblock”<br />

der folgenden Form ein:<br />

true<br />

<br />

false<br />

( 1 )<br />

( 2 )<br />

Abbildung 6.6: Bedingungs-Strukturblock<br />

Hierbei werden die durch “(1)” gekennzeichneten Strukturblöcke dann durchlaufen,<br />

wenn die aufgeführte Verzweigungs-Bedingung “” zutrifft. Ist diese<br />

Bedingung nicht erfüllt, so werden die durch “(2)” gekennzeichneten Strukturblöcke<br />

durchlaufen.<br />

Die Umsetzung des “Bedingungs-Strukturblockes” wird über die Message “ifTrue:if-<br />

False:” vorgenommen, mit der die Ausführung der Basis-Methode “ifTrue:ifFalse:”<br />

abgerufen wird. Dabei muß die Verzweigungs-Bedingung als Empfänger-Objekt dieser<br />

Message, der Inhalt von “(1)” als Argument des Selektors “ifTrue:” und der<br />

Inhalt von “(2)” als Argument des Selektors “ifFalse:” formuliert werden. Es ist zu<br />

beachten, daß die beiden Argumente in Form von Blöcken innerhalb der Message<br />

“ifTrue:ifFalse:” aufgeführt werden müssen.<br />

Sofern für “(1)” bzw. “(2)” keine Strukturblöcke angegeben sind, ist beim Selektor<br />

“ifTrue:” bzw. “ifFalse:” ein leerer Block in der Form “[ ]” als Argument aufzuführen.<br />

Mit der Basis-Methode “ifTrue:ifFalse:” läßt sich folglich eine Verzweigung formulieren,<br />

indem die Ausführung eines von zwei Blöcken bewirkt wird.<br />

ˆ “ifTrue:ifFalse:”:<br />

Ist das Empfänger-Objekt der Message “ifTrue:ifFalse:” gleich der Pseudovariablen<br />

“true”, so wird derjenige Block ausgeführt, der als Argument des<br />

Selektors “ifTrue:” angegeben ist. Handelt es sich beim Empfänger-Objekt um<br />

die Pseudovariable “false”, so wird der Block ausgeführt, der als Argument<br />

des Selektors “ifFalse:” aufgeführt ist.<br />

Hinweis: Die Basis-Methode “ifTrue:ifFalse:” ist sowohl in der Basis-Klasse “True” als<br />

auch in der Basis-Klasse “False” festgelegt.<br />

In der Basis-Klasse “True” ist die Methode “ifTrue:ifFalse:” in der Form<br />

ifTrue: trueBlock ifFalse: falseBlock<br />

∧ trueBlock value

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!