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.

118 6 Einsatz von Basis-Methoden<br />

(WerteErfassung11 bereitstellenWerte<br />

collect: [:einObjekt| (einObjekt asInteger odd)<br />

ifTrue: [einObjekt]<br />

ifFalse: [ ]<br />

])<br />

size<br />

Da der leere Block “[ ]” als Argument des Selektors “ifFalse:” aufgeführt ist, kann<br />

diese Anforderung in der Form<br />

(WerteErfassung11 bereitstellenWerte<br />

collect: [:einObjekt| (einObjekt asInteger odd)<br />

ifTrue: [einObjekt]<br />

])<br />

size<br />

abgekürzt werden.<br />

6.5 Wiederholungs-Methoden<br />

Sollen eine oder mehrere Block-Anforderungen nicht nur einmalig, sondern wiederholt<br />

ausgeführt werden, so läßt sich hierzu z.B. die Basis-Methode “timesRepeat:”<br />

aus der Basis-Klasse “Integer” einsetzen.<br />

Zum Beispiel wird durch die Ausführung von<br />

|summe zaehler|<br />

zaehler := 1.<br />

summe := 0.<br />

5 timesRepeat: [summe := summe + (zaehler * zaehler).<br />

zaehler := zaehler + 1].<br />

summe<br />

bewirkt, daß sich als Ergebnis-Objekt der letzten Anforderung “summe” die Zahl<br />

55 als Summe der Quadratzahlen von 1 bis 5 ergibt.<br />

Durch die Basis-Methode “timesRepeat:” kann ein Block eine konkret festgelegte<br />

Anzahl von Malen wiederholt ausgeführt werden.<br />

ˆ “timesRepeat:”:<br />

Die Häufigkeit, mit der der als Argument aufgeführte Block ausgeführt wird,<br />

ist durch das ganzzahlige Empfänger-Objekt der Message “timesRepeat:” festgelegt.<br />

Als Ergebnis-Objekt resultiert die ganze Zahl 0.<br />

Die Ausführung von “timesRepeat:” wird mittels der Basis-Methode “whileTrue:”<br />

gemäß der folgenden Methoden-Vereinbarung vorgenommen:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!