Aus Das deutschsprachige Scratch-Wiki

wiederhole für jedes [ v] in () {} :: control
wiederhole für jedes [i v] in () {
} :: control
Kategorie: Steuerung
Typ: Klammerblock
Eingeführt in: unbekannt
Eingaben: Variable, Zahl
Plugin-Code (Wiki): wiederhole für jedes [ v] in () {} :: control


Der wiederhole für jedes () in ()-Block ist ein Steuerungs-Block in Klammer-Block-Form. Er führt den Inhalt sooft aus, wie im zweiten Feld angegeben. Die Variable des ersten Felds startet bei 1 und wird jeden Durchlauf um 1 erhöht.

Wenn im zweiten Feld eine Zahl mit Nachkommastellen (z.B. 3.14159) angegeben ist, wird der aufgerundete Wert genommen (hier 4), anders als beim Wiederhole () mal-Block, bei dem gerundet wird.

Besonderheit

lösche alles aus [Liste v]
wiederhole für jedes [i v] in (5) {
füge (i) zu [Liste v] hinzu
ändere [i v] um (2)
} :: control

Die Liste im obigen Beispiel sieht so aus: 1, 2, 3, 4, 5.

Das liegt daran, dass die Variable (hier i) bei jedem Durchlauf neu gesetzt wird und ihr ursprünglicher Wert nicht von Bedeutung ist. Der wiederhole für jedes () in ()-Block besitzt einen eigenen Zähler, der bei jedem Durchlauf erhöht wird und die Variable setzt.

Innerhalb eines Durchlaufs kann die Variable allerdings beliebig verändert werden. Auch verschachtelte Schleifen sind möglich.

Block bekommen

Der Block taucht nicht in der Blockpalette links auf. Am einfachsten ist es, auf Turbowarp zu gehen und den Block dort aus der Blockpalette zu holen. Anschließend kann das Projekt exportiert und in Scratch wieder hochgeladen werden. Jetzt kann man den Block ins Lager ziehen und damit in allen Projekten verwenden.

Der Block funktioniert auch auf Scratch!

Anwendung

Der Block kann vielfältig eingesetzt werden:

Durchlaufen einer Liste:

wiederhole für jedes [i v] in (Länge von [Liste v]) {
sage (Element (i) von [Liste v])
} :: control

Durchlaufen eines Texts:

wiederhole für jedes [i v] in (Länge von [Text]) {
sage (Zeichen (i) von [Text])
} :: control

Durchlaufen eines mehrdimensionalen Raums:

wiederhole für jedes [x v] in (10) {
wiederhole für jedes [y v] in (10) {
wiederhole für jedes [z v] in (10) {
sage(verbinde (verbinde (x) und [/]) und (verbinde (y) und (verbinde [/] und (z))))
} :: control
} :: control
} :: control

Vergleichen von zwei Listen

wiederhole für jedes [i v] in (Länge von [Liste 1 v]) {
wiederhole für jedes [j v] in (Länge von [Liste 2 v]) {
sage <(Element (i) von [Liste 1 v])=(Element (j) von [Liste 2 v])>
} :: control
} :: control

Ersetzen des Blocks

Man kann den Block teilweise umgehen, aber wenn die Zähler-Variable geändert wird, wirkt sich das auch auf die nächsten Durchläufe aus.

setze [i v] auf (0)
wiederhole (5) mal
ändere [i v] um (1)
...
end

Siehe auch

Wiederhole () mal (Block)



Code zum Einbinden ins Forum:
[wiki=de:Wiederhole für jedes () in () (Block)]Wiederhole für jedes () in () (Block)[/wiki]
Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.