while in foreach umwandeln
Zuvor hast du in imperativem Stil eine while-Schleife geschrieben, um für fünf Hände (eine pro Spieler) in einer Runde Twenty-One die Punktzahl bis zum "Bust" zu ermitteln und auszugeben:
// Zählvariable definieren
var i = 0
// Liste mit fünf Twenty-One-Händen erstellen
var hands = List(16, 21, 8, 25, 4)
// Über die Hände iterieren
while(i < hands.length) {
// Punktzahl bis zum Bust ermitteln und ausgeben
println(pointsToBust(hands(i)))
// Zählvariable erhöhen
i += 1
}
In dieser Übung wandelst du den Code in einen funktionaleren, in Scala bevorzugten Stil mit der Methode foreach um. Die Funktion bust ist bereits für dich definiert. Eine angepasste Funktion pointsToBust (mit println) findest du im Beispielcode.
Diese Übung ist Teil des Kurses
Einführung in Scala
Anleitung zur Übung
- Rufe die Methode
foreachauf demhands-Array aus Arrays auf und iteriere über jede Runde, um mit der FunktionpointsToBustdie Punktzahl bis zum Bust zu ermitteln.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
// Find the number of points that will cause a bust
def pointsToBust(hand: Int) = {
// If the hand is a bust, 0 points remain
if (bust(hand))
println(0)
// Otherwise, calculate the difference between 21 and the current hand
else
println(21 - hand)
}
// Create list with five hands of Twenty-One
var hands = List(16, 21, 8, 25, 4)
// Loop through hands, finding each hand's number of points to bust
___