LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Rufe die Methode foreach auf dem hands-Array aus Arrays auf und iteriere über jede Runde, um mit der Funktion pointsToBust die 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
___
Code bearbeiten und ausführen