ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Chame o método foreach no array de arrays hands, percorrendo cada rodada para encontrar o número de pontos para estourar usando a função pointsToBust.

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
___
Editar e executar o código