Convertendo while para foreach
Antes, você escreveu um loop while no estilo imperativo para encontrar e imprimir o número de pontos para estourar em cinco mãos (uma para cada jogador) em uma rodada de Twenty-One:
// Define a variável contadora
var i = 0
// Cria uma lista com cinco mãos de Twenty-One
var hands = List(16, 21, 8, 25, 4)
// Faz loop pelas mãos
while(i < hands.length) {
// Encontra e imprime o número de pontos para estourar
println(pointsToBust(hands(i)))
// Incrementa a variável contadora
i += 1
}
Neste exercício, você vai converter esse código para um estilo mais funcional, preferido em Scala, usando o método foreach. A função bust já está definida para você. Uma versão modificada da função pointsToBust (com println) é fornecida no código de exemplo.
Este exercício faz parte do curso
Introdução a Scala
Instruções do exercício
- Chame o método
foreachno array de arrayshands, percorrendo cada rodada para encontrar o número de pontos para estourar usando a funçãopointsToBust.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
// 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
___