03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6.5 Wiederholungs-Methoden 119<br />

timesRepeat: aBlock<br />

|anInteger|<br />

anInteger := self.<br />

[anInteger > 0] whileTrue: [anInteger := anInteger - 1.<br />

aBlock value]<br />

Das Empfänger-Objekt von “timesRepeat:” wird somit der temporären Variablen<br />

“anInteger” zugeordnet, und für “aBlock” wird das hinter dem Selektor “timesRepeat:”<br />

angegebene Argument eingesetzt.<br />

Bei der Ausführung der Basis-Methode “whileTrue:”, die die Form<br />

[] whileTrue: <br />

besitzt, wird der als Argument des Selektors “whileTrue:” angegebene Block wiederholt<br />

ausgeführt. Diese Wiederholung wird durch die Bedingung gesteuert, die als<br />

Empfänger-Objekt von “whileTrue:” aufgeführt ist.<br />

ˆ Durch den Einsatz der Methode “whileTrue:” läßt sich die Wiederholung einer<br />

Block-Ausführung über eine Bedingung steuern, so daß die Anzahl der<br />

gewünschten Wiederholungen nicht bereits vor der erstmaligen Block-Ausführung<br />

feststehen muß.<br />

Im Hinblick auf die Ausführung der Basis-Methode “whileTrue:” ist folgendes festzustellen:<br />

ˆ “whileTrue:”:<br />

Das Empfänger-Objekt der Message “whileTrue:” muß ein logischer Block<br />

sein.<br />

Ist das Ergebnis-Objekt, das aus der erstmaligen Ausführung des logischen<br />

Blockes resultiert, gleich der Pseudovariablen “false”, so wird der Argument-<br />

Block, d.h. der Block, der als Argument des Selektors “whileTrue:” angegeben<br />

ist, nicht ausgeführt.<br />

Ergibt sich dagegen die Pseudovariable “true” als Ergebnis-Objekt, so erfolgt<br />

die erstmalige Ausführung des Argument-Blockes. Anschließend wird der logische<br />

Block erneut ausgewertet. In Abhängigkeit davon, welche Pseudovariable<br />

als Ergebnis-Objekt resultiert, wird die Wiederholung beendet oder fortgesetzt.<br />

Die Ausführung des Argument-Blockes wird solange wiederholt, bis sich die<br />

Pseudovariable “false” als Ergebnis-Objekt des logischen Blockes ergibt.<br />

Als Ergebnis-Objekt der Message “whileTrue:” ist die Pseudovariable “nil”<br />

festgelegt.<br />

Wollen wir z.B. die Summe der Quadratzahlen von 1 bis 5 bestimmen, so läßt sich<br />

dies auch über die folgenden Anforderungen erreichen:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!