Menu
Coddy logo textTech

Avaliação Flexível

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 51 de 56.

A igualdade estrita é rigorosa. Quizzes reais aceitam paris, Paris e PARIS como a mesma resposta.

A receita do capítulo 1: remover espaços em branco, converter ambos os lados para minúsculas, comparar:

func grade(_ given: String, _ answer: String) -> Bool {
    let g = given.trimmingCharacters(in: .whitespaces).lowercased()
    let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
    return g == a
}

Este é o tipo de helper que vale a pena extrair para sua própria função. O loop do quiz fica mais limpo com uma linha por pergunta, e a correção de bugs de amanhã acontece em um só lugar.

challenge icon

Desafio

Fácil

Defina uma função grade(_ given: String, _ answer: String) -> Bool que retorna true quando as duas strings coincidem após remover os espaços em branco e converter ambos os lados para letras minúsculas.

O banco de questions é fornecido. Leia três linhas do stdin. Imprima, para cada pergunta:

  1. O texto da pergunta
  2. correct ou wrong com base na comparação flexível

Após a execução, imprima Score: <n>/3.

Para a entrada 4 / PARIS / Green, a saída é:

2 + 2?
correct
Capital of France?
correct
Color of grass?
correct
Score: 3/3

Folha de consulta

Comparação de string flexível: remova espaços em branco e converta para minúsculas em ambos os lados antes de comparar.

func grade(_ given: String, _ answer: String) -> Bool {
    let g = given.trimmingCharacters(in: .whitespaces).lowercased()
    let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
    return g == a
}

Experimente você mesmo

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("geo", "Capital of France?", "Paris"),
    ("science", "Color of grass?", "green")
]

// TODO: func grade(_:_:)->Bool com trim + comparação em minúsculas
// depois faça um loop, imprima a pergunta, leia a resposta, imprima correto/errado;
// finalize com 'Score: <n>/3'
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo